changeset 134:d2f49caf9e38 ecos-sw-2000-11-03

Merge from eCos master repository on 2000-11-03-09:00:49-GMT
author jlarmour
date Fri, 03 Nov 2000 21:17:40 +0000
parents 98d71f4d8243
children 3bc2abeae9ff
files packages/ChangeLog packages/NEWS packages/compat/posix/current/ChangeLog packages/compat/posix/current/src/signal.cxx packages/compat/uitron/current/ChangeLog packages/compat/uitron/current/include/uit_func.inl packages/cygmon/current/ChangeLog packages/cygmon/current/cdl/cygmon.cdl packages/devs/flash/arm/sa1100mm/current/ChangeLog packages/devs/flash/arm/sa1100mm/current/cdl/flash_sa1100mm.cdl packages/devs/flash/arm/sa1100mm/current/src/flash.h packages/devs/flash/arm/sa1100mm/current/src/flash_erase_block.c packages/devs/flash/arm/sa1100mm/current/src/flash_program_buf.c packages/devs/flash/arm/sa1100mm/current/src/flash_query.c packages/devs/flash/arm/sa1100mm/current/src/sa1100mm_flash.c packages/devs/serial/mips/ref4955/current/ChangeLog packages/devs/serial/mips/ref4955/current/cdl/ser_mips_ref4955.cdl packages/devs/serial/mips/ref4955/current/include/mips_tx49_ref4955_ser.inl packages/devs/wallclock/mips/ref4955/current/ChangeLog packages/devs/wallclock/mips/ref4955/current/cdl/wallclock_ref4955.cdl packages/devs/wallclock/mips/ref4955/current/src/wallclock_ref4955.cxx packages/ecos.db packages/hal/arm/sa11x0/sa1100mm/current/ChangeLog packages/hal/arm/sa11x0/sa1100mm/current/cdl/hal_arm_sa11x0_sa1100mm.cdl packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_ints.h packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_setup.h packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.mlt packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.mlt packages/hal/arm/sa11x0/sa1100mm/current/include/sa1100mm.h packages/hal/arm/sa11x0/sa1100mm/current/src/sa1100mm_misc.c packages/hal/i386/arch/current/ChangeLog packages/hal/i386/arch/current/src/vectors.S packages/hal/i386/linux/current/ChangeLog packages/hal/i386/linux/current/src/entry.c packages/hal/i386/linux/current/src/syscall-i386-linux-1.0.S packages/hal/i386/pc/current/ChangeLog packages/hal/i386/pc/current/include/platform.inc packages/hal/mips/arch/current/ChangeLog packages/hal/mips/arch/current/include/mips-stub.h packages/hal/mips/ref4955/current/ChangeLog packages/hal/mips/ref4955/current/cdl/hal_mips_tx49_ref4955.cdl packages/hal/mips/ref4955/current/include/hal_diag.h packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_ram.h packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_ram.mlt packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_rom.h packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_rom.mlt packages/hal/mips/ref4955/current/include/platform.inc packages/hal/mips/ref4955/current/include/plf_cache.h packages/hal/mips/ref4955/current/include/plf_intr.h packages/hal/mips/ref4955/current/include/plf_io.h packages/hal/mips/ref4955/current/include/plf_stub.h packages/hal/mips/ref4955/current/misc/slow_cat.tcl packages/hal/mips/ref4955/current/misc/swap4.tcl packages/hal/mips/ref4955/current/src/hal_diag.c packages/hal/mips/ref4955/current/src/pc87338.c packages/hal/mips/ref4955/current/src/platform.S packages/hal/mips/ref4955/current/src/plf_misc.c packages/hal/mips/ref4955/current/src/plf_mk_defs.c packages/hal/mips/ref4955/current/src/plf_stub.c packages/hal/mips/tx49/current/ChangeLog packages/hal/mips/tx49/current/cdl/hal_mips_tx49.cdl packages/hal/mips/tx49/current/include/var_arch.h packages/hal/mips/tx49/current/include/var_cache.h packages/hal/mips/tx49/current/include/var_intr.h packages/hal/mips/tx49/current/include/variant.inc packages/hal/mips/tx49/current/src/mips_tx49.ld packages/hal/mips/tx49/current/src/var_misc.c packages/hal/mips/tx49/current/src/variant.S packages/hal/powerpc/arch/current/ChangeLog packages/hal/powerpc/arch/current/src/powerpc.ld packages/hal/powerpc/mbx/current/images/redboot_RAM.bin packages/hal/powerpc/mbx/current/images/redboot_RAM.img packages/hal/powerpc/mbx/current/images/redboot_RAM.srec packages/hal/powerpc/mbx/current/images/redboot_ROM.bin packages/hal/powerpc/mbx/current/images/redboot_ROM.img packages/hal/powerpc/mbx/current/images/redboot_ROM.srec packages/hal/powerpc/mbx/current/misc/redboot_ROM.cfg packages/hal/powerpc/ppc40x/current/ChangeLog packages/hal/powerpc/ppc40x/current/cdl/hal_powerpc_ppc40x.cdl packages/hal/powerpc/ppc40x/current/include/var_cache.h packages/hal/powerpc/ppc40x/current/include/var_intr.h packages/hal/powerpc/ppc40x/current/include/var_regs.h packages/hal/powerpc/ppc40x/current/include/variant.inc packages/hal/powerpc/ppc40x/current/src/var_intr.c packages/hal/powerpc/ppc40x/current/src/var_misc.c packages/hal/powerpc/ppc40x/current/src/variant.S packages/hal/sh/arch/current/ChangeLog packages/hal/sh/arch/current/cdl/hal_sh.cdl packages/hal/sh/arch/current/include/hal_cache.h packages/hal/sh/arch/current/include/hal_intr.h packages/hal/sh/arch/current/include/mod_7707a.h packages/hal/sh/arch/current/include/mod_7708.h packages/hal/sh/arch/current/include/mod_7709a.h packages/hal/sh/arch/current/include/mod_7729.h packages/hal/sh/arch/current/include/sh3_sci.h packages/hal/sh/arch/current/include/sh3_scif.h packages/hal/sh/arch/current/include/sh_regs.h packages/hal/sh/arch/current/src/hal_misc.c packages/hal/sh/arch/current/src/hal_mk_defs.c packages/hal/sh/arch/current/src/sh3_sci.c packages/hal/sh/arch/current/src/sh3_scif.c packages/hal/sh/arch/current/src/sh_stub.c packages/hal/sh/arch/current/src/vectors.S packages/hal/sh/cq7708/current/ChangeLog packages/hal/sh/cq7708/current/include/plf_cache.h packages/hal/sh/cq7708/current/include/plf_intr.h packages/hal/sh/cq7750/current/ChangeLog packages/hal/sh/cq7750/current/cdl/hal_sh_sh7750_cq7750.cdl packages/hal/sh/cq7750/current/include/hal_diag.h packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_ram.h packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_ram.ldi packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_ram.mlt packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_rom.h packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_rom.ldi packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_rom.mlt packages/hal/sh/cq7750/current/include/platform.inc packages/hal/sh/cq7750/current/include/plf_cache.h packages/hal/sh/cq7750/current/include/plf_intr.h packages/hal/sh/cq7750/current/include/plf_stub.h packages/hal/sh/cq7750/current/src/hal_diag.c packages/hal/sh/cq7750/current/src/plf_misc.c packages/hal/sh/edk/current/ChangeLog packages/hal/sh/edk/current/cdl/hal_sh_edk7708.cdl packages/hal/sh/edk/current/include/hal_diag.h packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_ram.h packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_ram.ldi packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_ram.mlt packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_rom.h packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_rom.ldi packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_rom.mlt packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_romram.h packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_romram.ldi packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_romram.mlt packages/hal/sh/edk/current/include/platform.inc packages/hal/sh/edk/current/include/plf_stub.h packages/hal/sh/edk/current/misc/STUBS_config packages/hal/sh/edk/current/src/edk.S packages/hal/sh/edk/current/src/hal_diag.c packages/hal/sh/edk/current/src/plf_misc.c packages/hal/sh/edk7708/current/ChangeLog packages/hal/sh/edk7708/current/cdl/hal_sh_edk7708.cdl packages/hal/sh/edk7708/current/include/hal_diag.h packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_ram.h packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_ram.ldi packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_ram.mlt packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_rom.h packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_rom.ldi packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_rom.mlt packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_romram.h packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_romram.ldi packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_romram.mlt packages/hal/sh/edk7708/current/include/platform.inc packages/hal/sh/edk7708/current/include/plf_cache.h packages/hal/sh/edk7708/current/include/plf_intr.h packages/hal/sh/edk7708/current/include/plf_stub.h packages/hal/sh/edk7708/current/src/edk.S packages/hal/sh/edk7708/current/src/hal_diag.c packages/hal/sh/edk7708/current/src/plf_misc.c packages/hal/sh/sh3/current/ChangeLog packages/hal/sh/sh3/current/cdl/hal_sh_sh3.cdl packages/hal/sh/sh3/current/include/mod_7707a.h packages/hal/sh/sh3/current/include/mod_7708.h packages/hal/sh/sh3/current/include/mod_7709a.h packages/hal/sh/sh3/current/include/mod_7729.h packages/hal/sh/sh3/current/include/mod_regs_bsc.h packages/hal/sh/sh3/current/include/mod_regs_cac.h packages/hal/sh/sh3/current/include/mod_regs_cpg.h packages/hal/sh/sh3/current/include/mod_regs_dma.h packages/hal/sh/sh3/current/include/mod_regs_intc.h packages/hal/sh/sh3/current/include/mod_regs_mmu.h packages/hal/sh/sh3/current/include/mod_regs_pfc.h packages/hal/sh/sh3/current/include/mod_regs_rtc.h packages/hal/sh/sh3/current/include/mod_regs_ser.h packages/hal/sh/sh3/current/include/mod_regs_tmu.h packages/hal/sh/sh3/current/include/mod_regs_ubc.h packages/hal/sh/sh3/current/include/sh3_sci.h packages/hal/sh/sh3/current/include/sh3_scif.h packages/hal/sh/sh3/current/include/var_cache.h packages/hal/sh/sh3/current/include/var_intr.h packages/hal/sh/sh3/current/include/var_regs.h packages/hal/sh/sh3/current/include/variant.inc packages/hal/sh/sh3/current/src/sh3_sci.c packages/hal/sh/sh3/current/src/sh3_scif.c packages/hal/sh/sh3/current/src/var_misc.c packages/hal/sh/sh3/current/src/var_mk_defs.c packages/hal/sh/sh3/current/src/variant.S packages/hal/sh/sh4/current/ChangeLog packages/hal/sh/sh4/current/cdl/hal_sh_sh4.cdl packages/hal/sh/sh4/current/include/mod_7750.h packages/hal/sh/sh4/current/include/mod_regs_bsc.h packages/hal/sh/sh4/current/include/mod_regs_cac.h packages/hal/sh/sh4/current/include/mod_regs_cpg.h packages/hal/sh/sh4/current/include/mod_regs_dma.h packages/hal/sh/sh4/current/include/mod_regs_intc.h packages/hal/sh/sh4/current/include/mod_regs_mmu.h packages/hal/sh/sh4/current/include/mod_regs_pfc.h packages/hal/sh/sh4/current/include/mod_regs_rtc.h packages/hal/sh/sh4/current/include/mod_regs_ser.h packages/hal/sh/sh4/current/include/mod_regs_tmu.h packages/hal/sh/sh4/current/include/mod_regs_ubc.h packages/hal/sh/sh4/current/include/sh4_scif.h packages/hal/sh/sh4/current/include/var_cache.h packages/hal/sh/sh4/current/include/var_intr.h packages/hal/sh/sh4/current/include/var_regs.h packages/hal/sh/sh4/current/include/variant.inc packages/hal/sh/sh4/current/src/sh4_scif.c packages/hal/sh/sh4/current/src/var_misc.c packages/hal/sh/sh4/current/src/var_mk_defs.c packages/hal/sh/sh4/current/src/variant.S packages/io/fileio/current/ChangeLog packages/io/fileio/current/src/file.cxx packages/io/fileio/current/src/io.cxx packages/io/flash/current/src/flash.h packages/io/serial/current/ChangeLog packages/isoinfra/current/ChangeLog packages/isoinfra/current/cdl/isoinfra.cdl packages/isoinfra/current/include/stdio.h packages/kernel/current/ChangeLog packages/kernel/current/tests/dhrystone.c packages/kernel/current/tests/kcache1.c packages/language/c/libc/stdio/current/ChangeLog packages/language/c/libc/stdio/current/cdl/stdio.cdl packages/language/c/libc/stdio/current/include/stdio.h packages/language/c/libc/stdio/current/src/common/fopen.cxx packages/language/c/libc/stdio/current/src/common/stderr.cxx packages/language/c/libc/stdio/current/src/common/stdin.cxx packages/language/c/libc/stdio/current/src/common/stdout.cxx packages/services/memalloc/common/current/ChangeLog packages/services/memalloc/common/current/tests/realloc.c packages/templates/all/ChangeLog packages/templates/all/current.ect packages/templates/default/ChangeLog packages/templates/default/current.ect packages/templates/elix/ChangeLog packages/templates/elix/current.ect packages/templates/net/ChangeLog packages/templates/net/current.ect packages/templates/posix/ChangeLog packages/templates/posix/current.ect packages/templates/stubs/ChangeLog packages/templates/stubs/current.ect packages/templates/uitron/ChangeLog packages/templates/uitron/current.ect
diffstat 249 files changed, 26394 insertions(+), 12235 deletions(-) [+]
line wrap: on
line diff
--- a/packages/ChangeLog
+++ b/packages/ChangeLog
@@ -1,7 +1,20 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* ecos.db: Added cq7750 target and SH3/SH4 variant packages. Moved
+	EDK7708 package.
+
+2000-10-25  Drew Moseley  <dmoseley@redhat.com>
+
+	* ecos.db: Add support for SA1100 Multimedia
+
 2000-10-20  Gary Thomas  <gthomas@redhat.com>
 
 	* ecos.db: Add FLASH drivers for PowerPC/MBX.
 
+2000-10-20  Gary Thomas  <gthomas@redhat.com>
+
+	* ecos.db: Include FLASH drivers for all Cirrus Logic targets.
+
 2000-09-15  Jesper Skov  <jskov@redhat.com>
 
 	* ecos.db: Made PID use generic 16x5x driver.
@@ -9,6 +22,7 @@ 2000-09-15  Jesper Skov  <jskov@redhat.c
 2000-09-14  Jesper Skov  <jskov@redhat.com>
 
 	* ecos.db: Added generic 16x5x driver package.
+	* ecos.db: Use generic 16x5x driver for REF4955.
 
 2000-09-06  Jesper Skov  <jskov@redhat.com>
 
@@ -98,6 +112,10 @@ 2000-06-22  Jesper Skov  <jskov@redhat.c
 
 	* ecos.db: Add CYGPKG_SNMPLIB and CYGPKG_SNMPAGENT.
 
+2000-06-06  Jesper Skov  <jskov@redhat.com>
+
+	* ecos.db: Removed REF4955 watchdog. Isn't supported on the board.
+
 2000-06-05  John Dallaway  <jld@redhat.com>
 
 	* ecos.db:
@@ -128,10 +146,19 @@ 2000-05-25  John Dallaway  <jld@redhat.c
 
 	* ecos.db: Tidy V850-related display strings.
 
+2000-05-25  Jesper Skov  <jskov@redhat.com>
+
+	* ecos.db: Added REF4955 serial driver package.
+	Added wallclock driver package.
+	
 2000-05-16  Nick Garnett  <nickg@cygnus.co.uk>
 
 	* ecos.db: Fixed naming bug in CYGPKG_LIBC_SETJMP entry.
 
+2000-05-10  Jesper Skov  <jskov@redhat.com>
+
+	* ecos.db: Added tx49 related packages.
+
 2000-04-26  Jesper Skov  <jskov@redhat.com>
 
 	* ecos.db: ceb_v850 - include serial driver.
--- a/packages/NEWS
+++ b/packages/NEWS
@@ -1,3 +1,11 @@
+* Added a port to the Toshiba MIPS TX49 chip, with the REF4955 reference
+  platform. This includes serial device driver and wallclock device driver
+  support.
+* PowerPC 40x variant support added.
+* Added SH4 support. Split SH architecture HAL into variants in the process.
+* Added SH4/CQ7750 platform support [still untested]
+* Port to Intel SA1100 Multimedia evalulation board added, including FLASH
+  driver and RedBoot support 
 * FLASH driver added for PowerPC/MBX
 * sigsetjmp() and siglongjmp() added
 * A choice of getcwd() implementations have been added
--- a/packages/compat/posix/current/ChangeLog
+++ b/packages/compat/posix/current/ChangeLog
@@ -1,3 +1,25 @@
+2000-11-02  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/signal.cxx (sigtimedwait): return signal number on success,
+	not 0
+	(SIGNAL_RETURN_VALUE): New macro for returning from functions with
+	valid non-zero returns
+	(sigwaitinfo): Pass on sigtimedwait result with SIGNAL_RETURN_VALUE
+	macro as it may return the signal number.
+
+2000-11-01  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/signal.cxx (sigtimedwait): Check for SIGALRMs as a special
+	case when looping as it won't have been set pending if it was
+	masked.
+	(check_sigalarm): New function extracted from the posix signal ASR
+	(sigalrm_action): Unconditionally wake up threads waiting in sigwait
+	so that they can check for pending SIGALRMs even if they were
+	masked.
+	(cyg_deliver_signals): Handle SIG_DFL signals properly, and check
+	for bad signal handlers.
+	(cyg_posix_signal_start): Initialize default signal actions to SIG_DFL
+
 2000-10-27  Jesper Skov  <jskov@redhat.com>
 
 	* tests/signal2.c (cause_illegal_access): Don't loop forever.
--- a/packages/compat/posix/current/src/signal.cxx
+++ b/packages/compat/posix/current/src/signal.cxx
@@ -47,6 +47,7 @@
 #include <pkgconf/hal.h>
 #include <pkgconf/kernel.h>
 #include <pkgconf/posix.h>
+#include <pkgconf/isoinfra.h>
 
 #include <cyg/kernel/ktypes.h>          // base kernel types
 #include <cyg/infra/cyg_trac.h>         // tracing macros
@@ -80,6 +81,13 @@ CYG_MACRO_START                         
     return __retval;                            \
 CYG_MACRO_END
 
+// Similarly for functions that have valid non-zero returns
+#define SIGNAL_RETURN_VALUE(val)                \
+CYG_MACRO_START                                 \
+    CYG_REPORT_RETVAL( val );                   \
+    return val;                                 \
+CYG_MACRO_END
+
 // Range check on a signal value.
 #define SIGNAL_VALID(_sig_) (((_sig_) > 0) && ((_sig_) < ((int)sizeof(sigset_t)*8)))
 
@@ -149,6 +157,12 @@ externC void cyg_posix_signal_start()
         siginfo[i].next = siginfo_next;
         siginfo_next = &siginfo[i];
     }
+    
+    // initialize all signal actions to SIG_DFL
+    for ( unsigned int i=0; i<(sizeof(sigstate)/sizeof(signal_state)); i++ )
+    {
+        sigstate[i].sa.sa_handler = SIG_DFL;
+    }
 
     // Clear the pending signal set
     sigemptyset( &sig_pending );
@@ -283,8 +297,7 @@ cyg_bool cyg_deliver_signals()
         signal_state *ss = &sigstate[signo];
         sigset_t sigbit = 1L<<signo;
 
-        if( ss->sa.sa_handler != SIG_DFL &&
-            ss->sa.sa_handler != SIG_IGN )
+        if( ss->sa.sa_handler != SIG_IGN )
         {
             sigset_t oldmask = self->sigmask;
             siginfo_t lsi;
@@ -348,12 +361,23 @@ cyg_bool cyg_deliver_signals()
             if( ss->sa.sa_flags & SA_SIGINFO )
             {
                 // A sigaction delivery
-                
+                CYG_CHECK_FUNC_PTR( ss->sa.sa_sigaction,
+                                    "Bad sa_sigaction signal handler" );
                 ss->sa.sa_sigaction( signo, &lsi, NULL );
             }
+            if ( ss->sa.sa_handler == SIG_DFL )
+            {
+                // FIXME: should do something better here
+#if CYGINT_ISO_EXIT
+                _exit( -signo );
+#endif
+                CYG_FAIL("Unhandled POSIX signal");
+            }            
             else
             {
                 // This is a standard signal delivery.
+                CYG_CHECK_FUNC_PTR( ss->sa.sa_handler,
+                                    "Bad sa_handler signal handler" );
 
                 ss->sa.sa_handler( signo );
             }
@@ -386,14 +410,18 @@ static void sigalrm_action( Cyg_Alarm *a
     sigalrm_pending = true;
     sigemptyset( &mask );
     sigaddset( &mask, SIGALRM );
+    // Wake up any threads in sigsuspend() and sigwait() in case they
+    // are waiting for an alarm, and would have SIGALRM masked
+    signal_sigwait.broadcast();
+    
     cyg_posix_pthread_release_thread( &mask );
 }
 
 // -------------------------------------------------------------------------
-// signal ASR function. This is called from the general POSIX ASR to
-// deal with any signal related issues.
+// Check for SIGALRMs. This is called from the ASR and sigtimedwait()
+// as alarms need to be handled as a special case.
 
-externC void cyg_posix_signal_asr(pthread_info *self)
+static __inline__ void check_sigalarm(void)
 {
     // If there is a pending SIGALRM, generate it
     if( sigalrm_pending )
@@ -409,12 +437,20 @@ externC void cyg_posix_signal_asr(pthrea
         // generate the signal
         cyg_sigqueue( &sev, SI_USER );
     }
+}
+
+// -------------------------------------------------------------------------
+// signal ASR function. This is called from the general POSIX ASR to
+// deal with any signal related issues.
+
+externC void cyg_posix_signal_asr(pthread_info *self)
+{
+    check_sigalarm();
 
     // Now call cyg_deliver_signals() to see if we can
     // handle any signals now.
     
     cyg_deliver_signals();
-
 }
 
 //==========================================================================
@@ -560,7 +596,7 @@ externC int sigaction  (int sig, const s
 // -------------------------------------------------------------------------
 // Queue signal to process with value.
 
-externC int sigqueue  (pid_t pid, int sig, const union sigval value)
+externC int sigqueue (pid_t pid, int sig, const union sigval value)
 {
     SIGNAL_ENTRY();
 
@@ -715,7 +751,7 @@ externC int sigwaitinfo  (const sigset_t
 
     int ret = sigtimedwait( set, info, NULL );
     
-    SIGNAL_RETURN(ret);
+    SIGNAL_RETURN_VALUE(ret);
 }
 
 // -------------------------------------------------------------------------
@@ -757,6 +793,10 @@ externC int sigtimedwait  (const sigset_
             }
         }
         else signal_sigwait.wait();
+        
+        // Special case check for SIGALRM since the fact SIGALRM is masked
+        // would have prevented it being set pending in the alarm handler.
+        check_sigalarm();
     }
 
     if( err == 0 )
@@ -821,7 +861,10 @@ externC int sigtimedwait  (const sigset_
     
     signal_mutex.unlock();
     
-    SIGNAL_RETURN(err);
+    if (err)
+        SIGNAL_RETURN(err);
+    else
+        SIGNAL_RETURN_VALUE( info->si_signo );
 }
 
 //==========================================================================
--- a/packages/compat/uitron/current/ChangeLog
+++ b/packages/compat/uitron/current/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* include/uit_func.inl: CYG_SCHED_UNIQUE_PRIORITIES changed to
+	CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES
+
 2000-09-13  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* include/uit_objs.hxx (CYG_UITRON_OBJS_INIT_PRIORITY): Define
--- a/packages/compat/uitron/current/include/uit_func.inl
+++ b/packages/compat/uitron/current/include/uit_func.inl
@@ -463,7 +463,7 @@ ter_tsk ( ID tskid )
         p->force_resume(); // let it run
         p->kill(); // and set prio high so it runs RIGHT NOW!!
 #ifdef CYGIMP_THREAD_PRIORITY
-#if CYG_SCHED_UNIQUE_PRIORITIES != 0
+#if CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES != 0
         // see if we are already at prio 0:
         if ( 0 == cyg_uitron_dis_dsp_old_priority )
             // then dispatch is enabled, we are not at prio 0
@@ -475,7 +475,7 @@ ter_tsk ( ID tskid )
     }
     Cyg_Scheduler::unlock();
 #ifdef CYGIMP_THREAD_PRIORITY
-#if CYG_SCHED_UNIQUE_PRIORITIES == 0
+#if CYGINT_KERNEL_SCHEDULER_UNIQUE_PRIORITIES == 0
     if ( (E_OK == ret) && (0 != cyg_uitron_dis_dsp_old_priority) ) {
         // then dispatching is disabled, so our prio is 0 too
         Cyg_Thread::yield(); // so let the dying thread run;
--- a/packages/cygmon/current/ChangeLog
+++ b/packages/cygmon/current/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* cdl/cygmon.cdl: Improve cygmon.elf make dependencies
+
 2000-10-17  Drew Moseley  <dmoseley@redhat.com>
 
 	* misc/utils.c: Fix a typo.  Also make sure we are ignoring the
--- a/packages/cygmon/current/cdl/cygmon.cdl
+++ b/packages/cygmon/current/cdl/cygmon.cdl
@@ -96,7 +96,7 @@ cdl_package CYGPKG_CYGMON {
                      This is handled by a rule in the target CDL."
 
         make -priority 320 {
-            <PREFIX>/bin/cygmon.elf : <PACKAGE>/misc/ecos_bsp.c <PACKAGE>/misc/ecos_dummy.c <PACKAGE>/misc/cpu-mon.c <PACKAGE>/misc/monitor.c <PACKAGE>/misc/monitor_cmd.c <PACKAGE>/misc/ledit.c <PACKAGE>/misc/breakpoints.c <PACKAGE>/misc/bplist-dynamic.c <PACKAGE>/misc/utils.c <PACKAGE>/misc/generic_fmt32.c <PACKAGE>/misc/generic_mem.c <PACKAGE>/misc/bsp/common/bsp.c <PACKAGE>/misc/bsp/common/bsp_if.c <PACKAGE>/misc/bsp/common/shared-data.c <PACKAGE>/misc/bsp/common/sysinfo.c <PACKAGE>/misc/bsp/common/console-io.c <PACKAGE>/misc/bsp/common/debug-io.c <PACKAGE>/misc/bsp/common/sprintf.c <PACKAGE>/misc/bsp/common/syscall.c <PACKAGE>/misc/bsp/common/printf.c <PACKAGE>/misc/bsp/common/vprintf.c <PACKAGE>/misc/bsp/common/breakpoint.c <PACKAGE>/misc/bsp/common/singlestep.c <PACKAGE>/misc/bsp/common/generic-mem.c <PACKAGE>/misc/bsp/common/bsp_cache.c <PACKAGE>/misc/bsp/common/gdb-cpu.c <PACKAGE>/misc/bsp/common/hex-utils.c
+            <PREFIX>/bin/cygmon.elf : $(PREFIX)/lib/target.ld $(PREFIX)/lib/vectors.o $(PREFIX)/lib/libtarget.a $(PREFIX)/lib/libextras.a <PACKAGE>/misc/ecos_bsp.c <PACKAGE>/misc/ecos_dummy.c <PACKAGE>/misc/cpu-mon.c <PACKAGE>/misc/monitor.c <PACKAGE>/misc/monitor_cmd.c <PACKAGE>/misc/ledit.c <PACKAGE>/misc/breakpoints.c <PACKAGE>/misc/bplist-dynamic.c <PACKAGE>/misc/utils.c <PACKAGE>/misc/generic_fmt32.c <PACKAGE>/misc/generic_mem.c <PACKAGE>/misc/bsp/common/bsp.c <PACKAGE>/misc/bsp/common/bsp_if.c <PACKAGE>/misc/bsp/common/shared-data.c <PACKAGE>/misc/bsp/common/sysinfo.c <PACKAGE>/misc/bsp/common/console-io.c <PACKAGE>/misc/bsp/common/debug-io.c <PACKAGE>/misc/bsp/common/sprintf.c <PACKAGE>/misc/bsp/common/syscall.c <PACKAGE>/misc/bsp/common/printf.c <PACKAGE>/misc/bsp/common/vprintf.c <PACKAGE>/misc/bsp/common/breakpoint.c <PACKAGE>/misc/bsp/common/singlestep.c <PACKAGE>/misc/bsp/common/generic-mem.c <PACKAGE>/misc/bsp/common/bsp_cache.c <PACKAGE>/misc/bsp/common/gdb-cpu.c <PACKAGE>/misc/bsp/common/hex-utils.c
             @sh -c "mkdir -p misc/bsp/common $(dir $@)"
             $(CC) -c -I$(REPOSITORY)/$(PACKAGE)/misc $(INCLUDE_PATH) $(CFLAGS) -DHAVE_BSP -D__ECOS__ -o misc/ecos_bsp.o $(REPOSITORY)/$(PACKAGE)/misc/ecos_bsp.c
             $(CC) -c -I$(REPOSITORY)/$(PACKAGE)/misc $(INCLUDE_PATH) $(CFLAGS) -DHAVE_BSP -D__ECOS__ -o misc/ecos_dummy.o $(REPOSITORY)/$(PACKAGE)/misc/ecos_dummy.c
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/ChangeLog
@@ -0,0 +1,36 @@
+2000-10-25  Drew Moseley  <dmoseley@redhat.com>
+
+	* src/sa1100mm_flash.c: New file.  Support for SA1100 Multimedia
+	board.
+	* src/flash_query.c: Ditto.
+	* src/flash_program_buf.c: Ditto.
+	* src/flash_erase_block.c: Ditto.
+	* src/flash.h: Ditto.
+	* cdl/flash_sa1100mm.cdl: Ditto.
+	* ChangeLog: Ditto.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/cdl/flash_sa1100mm.cdl
@@ -0,0 +1,82 @@
+# ====================================================================
+#
+#      flash_sa1100mm.cdl
+#
+#      FLASH memory - Hardware support on StrongARM SA1100 Multimedia
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      dmoseley
+# Original data:  gthomas
+# Contributors:
+# Date:           2000-10-25
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_DEVS_FLASH_SA1100MM {
+    display       "StrongARM SA1100 Multimedia FLASH memory support"
+
+    parent        CYGPKG_IO_FLASH
+    active_if	  CYGPKG_IO_FLASH
+    requires	  CYGPKG_HAL_ARM_SA11X0
+
+    implements    CYGHWR_IO_FLASH_DEVICE
+
+    include_dir   .
+    include_files ; # none _exported_ whatsoever
+    description   "FLASH memory device support for StrongARM SA1100 Multimedia"
+    compile       sa1100mm_flash.c
+
+    make -priority 1 {
+        flash_erase_block.o: $(REPOSITORY)/$(PACKAGE)/src/flash_erase_block.c
+        $(CC) -S $(INCLUDE_PATH) $(CFLAGS) -g0 -fno-function-sections $(REPOSITORY)/$(PACKAGE)/src/flash_erase_block.c
+        echo " .globl flash_erase_block_end" >>flash_erase_block.s
+        echo "flash_erase_block_end:" >>flash_erase_block.s
+        $(CC) -c -o flash_erase_block.o flash_erase_block.s
+        $(AR) rcs $(PREFIX)/lib/libtarget.a flash_erase_block.o
+    }
+    make -priority 1 {
+        flash_program_buf.o: $(REPOSITORY)/$(PACKAGE)/src/flash_program_buf.c
+        $(CC) -S $(INCLUDE_PATH) $(CFLAGS) -g0 -fno-function-sections $(REPOSITORY)/$(PACKAGE)/src/flash_program_buf.c
+        echo " .globl flash_program_buf_end" >>flash_program_buf.s
+        echo "flash_program_buf_end:" >>flash_program_buf.s
+        $(CC) -c -o flash_program_buf.o flash_program_buf.s
+        $(AR) rcs $(PREFIX)/lib/libtarget.a flash_program_buf.o
+    }
+    make -priority 1 {
+        flash_query.o: $(REPOSITORY)/$(PACKAGE)/src/flash_query.c
+        $(CC) -S $(INCLUDE_PATH) $(CFLAGS) -g0 -fno-function-sections $(REPOSITORY)/$(PACKAGE)/src/flash_query.c
+        echo " .globl flash_query_end" >>flash_query.s
+        echo "flash_query_end:" >>flash_query.s
+        $(CC) -c -o flash_query.o flash_query.s
+        $(AR) rcs $(PREFIX)/lib/libtarget.a flash_query.o
+    }
+}
+
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/src/flash.h
@@ -0,0 +1,66 @@
+//==========================================================================
+//
+//      flash.h
+//
+//      Flash programming - device constants, etc.
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+// Date:         2000-10-25
+// Purpose:      
+// Description:  
+//              
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#ifndef _FLASH_HWR_H_
+#define _FLASH_HWR_H_
+
+// SA1100 Multimedia FLASH layout
+//   2x 28F016SV
+//   each device is 16x1M organized as 32x128K blocks
+
+#define FLASH_Read_ID      0x00900090
+#define FLASH_Read_Status  0x00700070
+#define FLASH_Clear_Status 0x00500050
+#define FLASH_Status_Ready 0x00800080
+#define FLASH_Program      0x00100010
+#define FLASH_Block_Erase  0x00200020
+#define FLASH_Confirm      0x00D000D0
+#define FLASH_Reset        0xFFFFFFFF
+
+#define FLASH_BLOCK_SIZE   0x40000
+
+#define FLASH_Intel_code   0x89
+#define FLASH_28F016SV_low 0xA0
+#define FLASH_28F016SV_hi  0x66
+
+#endif  // _FLASH_HWR_H_
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/src/flash_erase_block.c
@@ -0,0 +1,86 @@
+//==========================================================================
+//
+//      flash_erase_block.c
+//
+//      Flash programming
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+// Date:         2000-07-14
+// Purpose:      
+// Description:  
+//              
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include "flash.h"
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_cache.h>
+
+//
+// CAUTION!  This code must be copied to RAM before execution.  Therefore,
+// it must not contain any code which might be position dependent!
+//
+
+int
+flash_erase_block(volatile unsigned long *block)
+{
+    unsigned long stat;
+    int timeout = 5000000;    
+    int cache_on;
+
+    HAL_DCACHE_IS_ENABLED(cache_on);
+    if (cache_on) {
+        HAL_DCACHE_SYNC();
+        HAL_DCACHE_DISABLE();
+    }
+
+    // Clear any error conditions
+    *block = FLASH_Clear_Status;
+
+    // Set to erase
+    *block = FLASH_Block_Erase;
+    *block = FLASH_Confirm;
+    while(((stat = *block) & FLASH_Status_Ready) != FLASH_Status_Ready) {
+        if (--timeout == 0) break;
+    }
+
+    // Restore ROM to "normal" mode
+    *block = FLASH_Reset;
+
+    if (cache_on) {
+        HAL_DCACHE_ENABLE();
+    }
+
+    return stat;
+}
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/src/flash_program_buf.c
@@ -0,0 +1,94 @@
+//==========================================================================
+//
+//      flash_program_buf.c
+//
+//      Flash programming
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+// Date:         2000-07-14
+// Purpose:      
+// Description:  
+//              
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include "flash.h"
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_cache.h>
+
+//
+// CAUTION!  This code must be copied to RAM before execution.  Therefore,
+// it must not contain any code which might be position dependent!
+//
+
+int
+flash_program_buf(volatile unsigned long *addr, unsigned long *data, int len)
+{
+    unsigned long stat = 0;
+    int timeout = 5000000;
+    int cache_on;
+    volatile unsigned long *orig_addr = addr;
+
+    HAL_DCACHE_IS_ENABLED(cache_on);
+    if (cache_on) {
+        HAL_DCACHE_SYNC();
+        HAL_DCACHE_DISABLE();
+    }
+
+    // Clear any error conditions
+    *addr = FLASH_Clear_Status;
+
+    while (len > 0) {
+        *addr = FLASH_Program;
+        *addr = *data++;
+        timeout = 5000000;
+        while (((stat = *addr) & FLASH_Status_Ready) != FLASH_Status_Ready) {
+            if (--timeout == 0) {
+                goto bad;
+            }
+        }
+        addr++;
+        len -= sizeof(unsigned long);
+    }
+
+    // Restore ROM to "normal" mode
+ bad:
+    *orig_addr = FLASH_Reset;            
+
+    if (cache_on) {
+        HAL_DCACHE_ENABLE();
+    }
+
+    return stat;
+}
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/src/flash_query.c
@@ -0,0 +1,86 @@
+//==========================================================================
+//
+//      flash_query.c
+//
+//      Flash programming - query device
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+// Date:         2000-07-26
+// Purpose:      
+// Description:  
+//              
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include "flash.h"
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_cache.h>
+
+//
+// CAUTION!  This code must be copied to RAM before execution.  Therefore,
+// it must not contain any code which might be position dependent!
+//
+
+#define CNT 20*1000*10  // Approx 200ms
+
+int
+flash_query(unsigned char *data)
+{
+    volatile unsigned long *lROM;
+    volatile unsigned char *cROM;
+    int i, cnt;
+    int cache_on;
+
+    HAL_DCACHE_IS_ENABLED(cache_on);
+    if (cache_on) {
+        HAL_DCACHE_SYNC();
+        HAL_DCACHE_DISABLE();
+    }
+
+    lROM = (unsigned long *)0x08000000;
+    cROM = (unsigned char *)0x08000000;
+
+    lROM[0] = FLASH_Read_ID;
+    for (cnt = CNT;  cnt > 0;  cnt--) ;
+    for (i = 0;  i < 8;  i++) {
+        *data++ = cROM[i];
+    }
+    lROM[0] = FLASH_Reset;
+
+    if (cache_on) {
+        HAL_DCACHE_ENABLE();
+    }
+
+    return 0;
+}
new file mode 100644
--- /dev/null
+++ b/packages/devs/flash/arm/sa1100mm/current/src/sa1100mm_flash.c
@@ -0,0 +1,117 @@
+//==========================================================================
+//
+//      sa1100mm_flash.c
+//
+//      Flash programming
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+// Date:         2000-07-26
+// Purpose:      
+// Description:  
+//              
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_cache.h>
+
+#define  _FLASH_PRIVATE_
+#include <cyg/io/flash.h>
+
+#include "flash.h"
+
+int
+flash_hwr_init(void)
+{
+    unsigned char data[96];
+    extern char flash_query, flash_query_end;
+    typedef int code_fun(unsigned char *);
+    code_fun *_flash_query;
+    int code_len, stat, num_regions, region_size;
+
+    // Copy 'program' code to RAM for execution
+    code_len = (unsigned long)&flash_query_end - (unsigned long)&flash_query;
+    _flash_query = (code_fun *)flash_info.work_space;
+    memcpy(_flash_query, &flash_query, code_len);
+    HAL_DCACHE_SYNC();  // Should guarantee this code will run
+    HAL_ICACHE_DISABLE(); // is also required to avoid old contents
+
+    stat = (*_flash_query)(data);
+
+    HAL_ICACHE_ENABLE();
+
+    if ((data[0] == FLASH_Intel_code) &&
+        (data[4] == FLASH_28F016SV_low) &&
+        (data[5] == FLASH_28F016SV_hi)) {
+        num_regions = 32;
+        region_size = 0x20000;
+        flash_info.block_size = region_size;
+        flash_info.blocks = num_regions;
+        flash_info.start = (void *)0x08000000;
+        flash_info.end = (void *)(0x08000000+(num_regions*region_size));
+        return FLASH_ERR_OK;
+    } else {
+        printf("Can't identify FLASH, sorry\n");
+        diag_dump_buf(data, sizeof(data));
+        return FLASH_ERR_HWR;
+    }
+}
+
+// Map a hardware status to a package error
+int
+flash_hwr_map_error(int err)
+{
+   if (err & 0x7E) {
+        if (err & 0x10) {
+            return FLASH_ERR_PROGRAM;
+        } else 
+        if (err & 0x20) {
+            return FLASH_ERR_ERASE;
+        } else 
+        return FLASH_ERR_HWR;  // FIXME
+    } else {
+        return FLASH_ERR_OK;
+    }
+}
+
+// See if a range of FLASH addresses overlaps currently running code
+bool
+flash_code_overlaps(void *start, void *end)
+{
+    extern char _stext, _etext;
+
+    return ((((unsigned long)&_stext >= (unsigned long)start) &&
+             ((unsigned long)&_stext < (unsigned long)end)) ||
+            (((unsigned long)&_etext >= (unsigned long)start) &&
+             ((unsigned long)&_etext < (unsigned long)end)));
+}
new file mode 100644
--- /dev/null
+++ b/packages/devs/serial/mips/ref4955/current/ChangeLog
@@ -0,0 +1,58 @@
+2000-09-18  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/ser_mips_ref4955.cdl: Use CDL to specify testing parameters.
+
+	* include/mips_tx49_ref4955_ser.inl: Follow type naming changes in
+	generic driver.
+
+2000-09-14  Jesper Skov  <jskov@redhat.com>
+
+	* include/mips_tx49_ref4955_ser.inl: Use with generic 16x5x serial
+	driver.
+	* src/ref4955_serial.c: Deleted.
+	* src/ref4955_serial.h: Deleted.
+	* cdl/ser_mips_ref4955.cdl: Changed accordingly.
+
+2000-08-01  Jonathan Larmour  <jlarmour@redhat.co.uk>
+
+	* src/ref4955_serial.c (pc_serial_set_config): Now use keys to make
+	more flexible.
+
+2000-06-22  Hugo Tyson  <hmt@cygnus.co.uk>
+
+	* cdl/<yournamehere>.cdl: Remove the comment on the empty
+	include_files directive; the tools now support this correctly.
+	This keeps internal include files internal.
+
+2000-05-25  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/ser_mips_ref4955.cdl: 
+	* src/ref4955_serial.h: 
+	* src/ref4955_serial.c: 
+	REF4955 serial driver.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/devs/serial/mips/ref4955/current/cdl/ser_mips_ref4955.cdl
@@ -0,0 +1,175 @@
+# ====================================================================
+#
+#      ser_mips_ref4955.cdl
+#
+#      eCos serial MIPS/REF4955 configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  gthomas
+# Contributors:
+# Date:           2000-05-24
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+
+cdl_package CYGPKG_IO_SERIAL_MIPS_REF4955 {
+    display       "REF4955 serial device drivers"
+
+    parent        CYGPKG_IO_SERIAL_DEVICES
+    active_if     CYGPKG_IO_SERIAL
+    active_if     CYGPKG_HAL_MIPS_TX49_REF4955
+
+    requires      CYGPKG_ERROR
+    include_dir   cyg/io
+
+    description   "
+           This option enables the serial device drivers for the
+           REF4955."
+    doc           redirect/ecos-device-drivers.html
+
+    # FIXME: This really belongs in the GENERIC_16X5X package
+    cdl_interface CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED {
+        display   "Generic 16x5x serial driver required"
+    }
+
+    define_proc {
+        puts $::cdl_system_header "/***** serial driver proc output start *****/"
+        puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_GENERIC_16X5X_INL <cyg/io/mips_tx49_ref4955_ser.inl>"
+        puts $::cdl_system_header "#define CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG <pkgconf/io_serial_mips_ref4955.h>"
+        puts $::cdl_system_header "/*****  serial driver proc output end  *****/"
+    }
+
+    cdl_component CYGPKG_IO_SERIAL_MIPS_REF4955_SERIAL0 {
+        display       "REF4955 serial port 0 driver"
+        flavor        bool
+        default_value 1
+        description   "
+            This option includes the serial device driver for the
+            REF4955 port 0."
+
+        implements CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
+#        implements CYGINT_IO_SERIAL_FLOW_CONTROL_HW
+#        implements CYGINT_IO_SERIAL_LINE_STATUS_HW
+
+        cdl_option CYGDAT_IO_SERIAL_MIPS_REF4955_SERIAL0_NAME {
+            display       "Device name for the REF4955 serial port 0 driver"
+            flavor        data
+            default_value {"\"/dev/ser0\""}
+            description   "
+                This option sets the name of the serial device for the
+                REF4955 port 0."
+        }
+
+        cdl_option CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BAUD {
+            display       "Baud rate for the REF4955 serial port 0 driver"
+            flavor        data
+            legal_values  { 1200 2400 4800 9600 14400 19200 38400 57600 115200}
+            default_value 38400
+            description   "
+                This option specifies the default baud rate (speed)
+                for the REF4955 port 0."
+        }
+
+        cdl_option CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BUFSIZE {
+            display       "Buffer size for the REF4955 serial port 0 driver"
+            flavor        data
+            legal_values  0 to 8192
+            default_value 128
+            description   "
+                This option specifies the size of the internal buffers
+                used for the REF4955 port 0."
+        }
+    }
+
+    cdl_component CYGPKG_IO_SERIAL_MIPS_REF4955_SERIAL1 {
+        display       "REF4955 serial port 1 driver"
+        flavor        bool
+        default_value 1
+        description   "
+            This option includes the serial device driver for the
+            REF4955 port 1."
+
+        implements CYGINT_IO_SERIAL_GENERIC_16X5X_REQUIRED
+#        implements CYGINT_IO_SERIAL_FLOW_CONTROL_HW
+#        implements CYGINT_IO_SERIAL_LINE_STATUS_HW
+
+        cdl_option CYGDAT_IO_SERIAL_MIPS_REF4955_SERIAL1_NAME {
+            display       "Device name for the REF4955 serial port 1 driver"
+            flavor        data
+            default_value {"\"/dev/ser1\""}
+            description   "
+                This option specifies the name of serial device for
+                the REF4955 port 1."
+        }
+
+        cdl_option CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BAUD {
+            display       "Baud rate for the REF4955 serial port 1 driver"
+            flavor        data
+            legal_values  { 1200 2400 4800 9600 14400 19200 38400 57600 115200}
+            default_value 38400
+            description   "
+                This option specifies the default baud rate (speed)
+                for the REF4955 port 1."
+        }
+
+        cdl_option CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BUFSIZE {
+            display       "Buffer size for the REF4955 serial port 1 driver"
+            flavor        data
+            legal_values  0 to 8192
+            default_value 128
+            description   "
+                This option specifies the size of the internal buffers
+                used for the REF4955 port 1."
+        }
+    }
+
+
+    cdl_component CYGPKG_IO_SERIAL_MIPS_REF4955_TESTING {
+        display    "Testing parameters"
+        flavor     bool
+        calculated 1
+        active_if  CYGPKG_IO_SERIAL_MIPS_REF4955_SERIAL0
+        
+        cdl_option CYGPRI_SER_TEST_SER_DEV {
+            display       "Serial device used for testing"
+            flavor        data
+            default_value { CYGDAT_IO_SERIAL_MIPS_REF4955_SERIAL0_NAME }
+        }
+
+        define_proc {
+            puts $::cdl_header "#define CYGPRI_SER_TEST_CRASH_ID \"ref4955\""
+            puts $::cdl_header "#define CYGPRI_SER_TEST_TTY_DEV  \"/dev/tty0\""
+        }
+    }
+}
+
+# EOF ser_mips_ref4955.cdl
new file mode 100644
--- /dev/null
+++ b/packages/devs/serial/mips/ref4955/current/include/mips_tx49_ref4955_ser.inl
@@ -0,0 +1,168 @@
+//==========================================================================
+//
+//      devs/serial/mips/ref4955/src/mips_tx49_ref4955_ser.inl
+//
+//      REF4955 Serial I/O definitions.
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:gthomas, jskov
+// Date:        2000-05-24
+// Purpose:     REF4955 Serial definitions
+//####DESCRIPTIONEND####
+//==========================================================================
+
+#include <cyg/hal/hal_intr.h>
+
+//-----------------------------------------------------------------------------
+// There are two serial ports.
+#define CYG_DEVICE_SERIAL_SCC1    0xb40003f8 // port 1
+#define CYG_DEVICE_SERIAL_SCC2    0xb40002f8 // port 2
+
+//-----------------------------------------------------------------------------
+// The REF4955 board has a 14.318 MHz crystal, but the PC87338 part
+// uses a 24MHz internal clock for baud rate calculation.
+#define BAUD_DIVISOR(_x_) 24000000/13/16/(_x_)
+
+static unsigned short select_baud[] = {
+    0,    // Unused
+    0,    // 50
+    0,    // 75
+    0,    // 110
+    0,    // 134.5
+    0,    // 150
+    0,    // 200
+    0,    // 300
+    0,    // 600
+    BAUD_DIVISOR(1200),
+    0,    // 1800
+    BAUD_DIVISOR(2400),
+    0,    // 3600
+    BAUD_DIVISOR(4800),
+    0 ,   // 7200
+    BAUD_DIVISOR(9600),
+    BAUD_DIVISOR(14400),
+    BAUD_DIVISOR(19200),
+    BAUD_DIVISOR(38400),
+    BAUD_DIVISOR(57600),
+    BAUD_DIVISOR(115200),
+    0,    // 230400
+};
+
+//-----------------------------------------------------------------------------
+// Port 0 descriptors
+
+#ifdef CYGPKG_IO_SERIAL_MIPS_REF4955_SERIAL0
+static pc_serial_info pc_serial_info0 = {CYG_DEVICE_SERIAL_SCC1, 
+                                         CYGNUM_HAL_INTERRUPT_DEBUG_UART};
+#if CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BUFSIZE > 0
+static unsigned char pc_serial_out_buf0[CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BUFSIZE];
+static unsigned char pc_serial_in_buf0[CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BUFSIZE];
+
+static SERIAL_CHANNEL_USING_INTERRUPTS(pc_serial_channel0,
+                                       pc_serial_funs, 
+                                       pc_serial_info0,
+                                       CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BAUD),
+                                       CYG_SERIAL_STOP_DEFAULT,
+                                       CYG_SERIAL_PARITY_DEFAULT,
+                                       CYG_SERIAL_WORD_LENGTH_DEFAULT,
+                                       CYG_SERIAL_FLAGS_DEFAULT,
+                                       &pc_serial_out_buf0[0], 
+                                       sizeof(pc_serial_out_buf0),
+                                       &pc_serial_in_buf0[0], 
+                                       sizeof(pc_serial_in_buf0)
+    );
+#else
+static SERIAL_CHANNEL(pc_serial_channel0,
+                      pc_serial_funs, 
+                      pc_serial_info0,
+                      CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL0_BAUD),
+                      CYG_SERIAL_STOP_DEFAULT,
+                      CYG_SERIAL_PARITY_DEFAULT,
+                      CYG_SERIAL_WORD_LENGTH_DEFAULT,
+                      CYG_SERIAL_FLAGS_DEFAULT
+    );
+#endif
+
+DEVTAB_ENTRY(pc_serial_io0, 
+             CYGDAT_IO_SERIAL_MIPS_REF4955_SERIAL0_NAME,
+             0,                 // Does not depend on a lower level interface
+             &cyg_io_serial_devio, 
+             pc_serial_init, 
+             pc_serial_lookup,     // Serial driver may need initializing
+             &pc_serial_channel0
+    );
+#endif
+
+//-----------------------------------------------------------------------------
+// Port 1 descriptors
+
+#ifdef CYGPKG_IO_SERIAL_MIPS_REF4955_SERIAL1
+static pc_serial_info pc_serial_info1 = {CYG_DEVICE_SERIAL_SCC2, 
+                                         CYGNUM_HAL_INTERRUPT_USER_UART};
+#if CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BUFSIZE > 0
+static unsigned char pc_serial_out_buf1[CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BUFSIZE];
+static unsigned char pc_serial_in_buf1[CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BUFSIZE];
+
+static SERIAL_CHANNEL_USING_INTERRUPTS(pc_serial_channel1,
+                                       pc_serial_funs, 
+                                       pc_serial_info1,
+                                       CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BAUD),
+                                       CYG_SERIAL_STOP_DEFAULT,
+                                       CYG_SERIAL_PARITY_DEFAULT,
+                                       CYG_SERIAL_WORD_LENGTH_DEFAULT,
+                                       CYG_SERIAL_FLAGS_DEFAULT,
+                                       &pc_serial_out_buf1[0], 
+                                       sizeof(pc_serial_out_buf1),
+                                       &pc_serial_in_buf1[0], 
+                                       sizeof(pc_serial_in_buf1)
+    );
+#else
+static SERIAL_CHANNEL(pc_serial_channel1,
+                      pc_serial_funs, 
+                      pc_serial_info1,
+                      CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_MIPS_REF4955_SERIAL1_BAUD),
+                      CYG_SERIAL_STOP_DEFAULT,
+                      CYG_SERIAL_PARITY_DEFAULT,
+                      CYG_SERIAL_WORD_LENGTH_DEFAULT,
+                      CYG_SERIAL_FLAGS_DEFAULT
+    );
+#endif
+
+DEVTAB_ENTRY(pc_serial_io1, 
+             CYGDAT_IO_SERIAL_MIPS_REF4955_SERIAL1_NAME,
+             0,                   // Does not depend on a lower level interface
+             &cyg_io_serial_devio, 
+             pc_serial_init, 
+             pc_serial_lookup,     // Serial driver may need initializing
+             &pc_serial_channel1
+    );
+#endif
+
+// EOF mips_tx49_ref4955_ser.inl
new file mode 100644
--- /dev/null
+++ b/packages/devs/wallclock/mips/ref4955/current/ChangeLog
@@ -0,0 +1,40 @@
+2000-05-26  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/wallclock_ref4955.cdl:
+	* src/wallclock_ref4955.cxx:
+	* src/ds1742.inl: [deleted]
+	Added set-get mode. Moved Dallas driver to its own package.
+
+2000-05-25  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/wallclock_ref4955.cdl: 
+	* src/wallclock_ref4955.cxx:
+	* src/ds1742.inl:
+	Added wallclock driver REF4955 (Dallas 1742)
+	(set_ds_hwclock): Clear frequency test bit.
+
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+
+
new file mode 100644
--- /dev/null
+++ b/packages/devs/wallclock/mips/ref4955/current/cdl/wallclock_ref4955.cdl
@@ -0,0 +1,93 @@
+# ====================================================================
+#
+#      wallclock_ref4955.cdl
+#
+#      eCos wallclock for REF4955 driver configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Contributors:   jskov
+# Date:           2000-05-25
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_DEVICES_WALLCLOCK_MIPS_REF4955 {
+    parent        CYGPKG_IO_WALLCLOCK
+    active_if     CYGPKG_IO_WALLCLOCK
+    display       "REF4955 wallclock driver"
+    requires      CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS1742
+    requires      CYGPKG_HAL_MIPS_TX49_REF4955
+    hardware
+    compile       wallclock_ref4955.cxx
+    implements    CYGINT_WALLCLOCK_HW_IMPLEMENTATIONS
+    implements    CYGINT_WALLCLOCK_SET_GET_MODE_SUPPORTED
+    active_if     CYGIMP_WALLCLOCK_HARDWARE
+
+    cdl_option CYGIMP_WALLCLOCK_HARDWARE {
+        parent    CYGPKG_IO_WALLCLOCK_IMPLEMENTATION
+        display       "Hardware wallclock"
+        default_value 1
+        implements    CYGINT_WALLCLOCK_IMPLEMENTATIONS
+    }
+
+    cdl_component CYGPKG_DEVICES_WALLCLOCK_MIPS_REF4955_OPTIONS {
+        display "REF4955 wallclock build options"
+        flavor  none
+        description   "
+	    Package specific build options including control over
+	    compiler flags used only in building this package,
+	    and details of which tests are built."
+
+
+        cdl_option CYGPKG_DEVICES_WALLCLOCK_MIPS_REF4955_CFLAGS_ADD {
+            display "Additional compiler flags"
+            flavor  data
+            no_define
+            default_value { "" }
+            description   "
+                This option modifies the set of compiler flags for
+                building the wallclock device. These flags are used in addition
+                to the set of global flags."
+        }
+
+        cdl_option CYGPKG_DEVICES_WALLCLOCK_MIPS_REF4955_CFLAGS_REMOVE {
+            display "Suppressed compiler flags"
+            flavor  data
+            no_define
+            default_value { "" }
+            description   "
+                This option modifies the set of compiler flags for
+                building the wallclock device. These flags are removed from
+                the set of global flags if present."
+        }
+
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/devs/wallclock/mips/ref4955/current/src/wallclock_ref4955.cxx
@@ -0,0 +1,114 @@
+//==========================================================================
+//
+//      devs/wallclock/mips/ref4955/ref4955.cxx
+//
+//      Wallclock implementation
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):     jskov
+// Contributors:  jskov
+// Date:          2000-05-25
+// Purpose:       Wallclock driver for REF4955
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/kernel.h>             // Kernel config
+#include <pkgconf/wallclock.h>          // Wallclock device config
+
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/infra/cyg_type.h>         // Common type definitions and support
+
+#include <cyg/io/wallclock.hxx>         // The WallClock API
+#include <cyg/io/wallclock/wallclock.inl> // Helpers
+
+#include <cyg/infra/diag.h>             // For debugging
+
+// REF4955 has a Dallas 1742W part.
+#define DS_BASE 0xb5000000
+#include <cyg/io/wallclock/ds1742.inl>
+
+//-----------------------------------------------------------------------------
+// Functions required for the hardware-driver API.
+
+// Returns the number of seconds elapsed since 1970-01-01 00:00:00.
+cyg_uint32 
+Cyg_WallClock::get_hw_seconds(void)
+{
+    cyg_uint32 year, month, mday, hour, minute, second;
+
+    get_ds_hwclock(&year, &month, &mday, &hour, &minute, &second);
+
+#if 0
+    // This will cause the test to eventually fail due to these printouts
+    // causing timer interrupts to be lost...
+    diag_printf("year %02d\n", year);
+    diag_printf("month %02d\n", month);
+    diag_printf("mday %02d\n", mday);
+    diag_printf("hour %02d\n", hour);
+    diag_printf("minute %02d\n", minute);
+    diag_printf("second %02d\n", second);
+#endif
+
+    cyg_uint32 now = _simple_mktime(year, month, mday, hour, minute, second);
+    return now;
+}
+
+#ifdef CYGSEM_WALLCLOCK_SET_GET_MODE
+
+// Sets the clock. Argument is seconds elapsed since 1970-01-01 00:00:00.
+void
+Cyg_WallClock::set_hw_seconds( cyg_uint32 secs )
+{
+    cyg_uint32 year, month, mday, hour, minute, second;
+
+    _simple_mkdate(secs, &year, &month, &mday, &hour, &minute, &second);
+
+    set_ds_hwclock(year, month, mday, hour, minute, second);
+}
+
+#endif
+
+void
+Cyg_WallClock::init_hw_seconds(void)
+{
+#ifdef CYGSEM_WALLCLOCK_SET_GET_MODE
+    init_ds_hwclock();
+#else
+    // This is our base: 1970-01-01 00:00:00
+    // Set the HW clock - if for nothing else, just to be sure it's in a
+    // legal range. Any arbitrary base could be used.
+    // After this the hardware clock is only read.
+    set_ds_hwclock(1970,1,1,0,0,0);
+#endif
+}
+
+//-----------------------------------------------------------------------------
+// End of devs/wallclock/mips/ref4955/wallclock_ref4955.cxx
--- a/packages/ecos.db
+++ b/packages/ecos.db
@@ -124,6 +124,16 @@ package CYGPKG_DEVS_FLASH_EBSA285 {
 	   on the StrongARM EBSA-285 platform."
 }
 
+package CYGPKG_DEVS_FLASH_SA1100MM {
+	alias 		{ "FLASH memory support for StrongARM SA1100 Multimedia" flash_sa1100mm }
+	directory	devs/flash/arm/sa1100mm
+	script		flash_sa1100mm.cdl
+	hardware
+        description "
+           This package contains hardware support for FLASH memory
+	   on the StrongARM SA1100 Multimedia platform."
+}
+
 package CYGPKG_DEVS_FLASH_EDB7XXX {
 	alias 		{ "FLASH memory support for Cirrus Logic EDB7xxx" flash_edb7xxx }
 	directory	devs/flash/arm/edb7xxx
@@ -250,6 +260,15 @@ package CYGPKG_IO_SERIAL_TX39_JMR3904 {
 }
 
 
+package CYGPKG_IO_SERIAL_MIPS_REF4955 {
+    alias             { "TX49 REF4955 serial device drivers"
+                        devs_serial_mips_ref4955 ref4955_serial_driver }
+    hardware
+    directory	      devs/serial/mips/ref4955
+    script	      ser_mips_ref4955.cdl	
+    description       "TX49 REF4955 serial device drivers"
+}
+
 package CYGPKG_IO_SERIAL_MIPS_VRC4373 {
     alias             { "VRC4373 serial device drivers"
                         devs_serial_mips_vrc4373 vrc4373_serial_driver }
@@ -460,6 +479,15 @@ package CYGPKG_DEVICES_WALLCLOCK_DALLAS_
            the Dallas 1742 wallclock."
 }
 
+package CYGPKG_DEVICES_WALLCLOCK_MIPS_REF4955 {
+	alias		{ "Wallclock driver for REF4955 board" devices_wallclock_ref4955 device_wallclock_ref4955 }
+	directory	devs/wallclock/mips/ref4955
+	script          wallclock_ref4955.cdl
+	hardware
+        description "
+           This package provides a wallclock driver implementation for the
+           Toshiba REF4955 board."
+}
 
 
 package CYGPKG_DEVICES_WATCHDOG_ARM_AEB {
@@ -768,6 +796,17 @@ package CYGPKG_HAL_ARM_SA11X0_BRUTUS {
         The BRUTUS HAL package provides the support needed to run
         eCos on a Intel StrongARM SA1110 evaulation board (brutus)."
 }
+
+package CYGPKG_HAL_ARM_SA11X0_SA1100MM {
+	alias		{ "Intel SA1100 Multimedia eval board" hal_arm_sa11x0_sa1100mm }
+	directory	hal/arm/sa11x0/sa1100mm
+	script		hal_arm_sa11x0_sa1100mm.cdl
+	hardware
+        description "
+        The MULTIMEDIA HAL package provides the support needed to run
+        eCos on a Intel StrongARM SA1110 Multimedia evaluation board."
+}
+
 package CYGPKG_HAL_ARM_EDB7XXX {
 	alias		{ "Cirrus Logic development board" hal_arm_edb7xxx arm_edb7xxx_hal }
 	directory	hal/arm/edb7xxx
@@ -798,17 +837,37 @@ package CYGPKG_HAL_SH {
 	description "
            The SH (SuperH) architecture HAL package provides generic
            support for this processor architecture. It is also
-           necessary to select a specific target platform HAL
-           package."
+           necessary to select variant and target platform HAL
+           packages."
+}
+
+package CYGPKG_HAL_SH_SH3 {
+    alias         { "SH3 architecture" hal_sh_sh3 }
+    directory     hal/sh/sh3
+    script        hal_sh_sh3.cdl
+    hardware
+    description   "
+        The SH3 (SuperH 3) variant HAL package provides generic
+        support for SH3 variant CPUs."
+}
+
+package CYGPKG_HAL_SH_SH4 {
+    alias         { "SH4 architecture" hal_sh_sh4 }
+    directory     hal/sh/sh4
+    script        hal_sh_sh4.cdl
+    hardware
+    description   "
+        The SH4 (SuperH 4) variant HAL package provides generic
+        support for SH4 variant CPUs."
 }
 
 package CYGPKG_HAL_SH_EDK7708 {
 	alias		{ "Hitachi SH7708 board" hal_sh_edk sh_edk_hal }
-	directory	hal/sh/edk
+	directory	hal/sh/edk7708
 	script		hal_sh_edk7708.cdl
 	hardware
         description "
-           The edk HAL package provides the support needed to run
+           This SH HAL package provides the support needed to run
            eCos on a Hitachi SH3 EDK7708 board."
 }
 package CYGPKG_HAL_SH_SH7708_CQ7708 {
@@ -817,10 +876,19 @@ package CYGPKG_HAL_SH_SH7708_CQ7708 {
         script          hal_sh_sh7708_cq7708.cdl
         hardware
         description "
-           The cq HAL package provides the support needed to run
+           This SH HAL package provides the support needed to run
            eCos on a CqREEK SH7708 board."
 }
 
+package CYGPKG_HAL_SH_SH7750_CQ7750 {
+	alias		{ "CqREEK SH7750 board" hal_sh_cqsh4 sh_cqsh4_hal }
+	directory	hal/sh/cq7750
+	script		hal_sh_sh7750_cq7750.cdl
+	hardware
+        description "
+           This SH HAL package provides the support needed to run
+           eCos on a CqREEK SH7750 board."
+}
 
 # --------------------------------------------------------------------------
 # i386 packages
@@ -926,6 +994,17 @@ package CYGPKG_HAL_POWERPC_PPC60x {
            select a specific target platform HAL package."
 }
 
+package CYGPKG_HAL_POWERPC_PPC40x {
+	alias		{ "PowerPC 40x variant HAL" hal_ppc40x ppc40x_hal ppc40x_arch_hal }
+	directory	hal/powerpc/ppc40x/
+	script		hal_powerpc_ppc40x.cdl
+	hardware
+        description "
+           The PowerPC 40x variant HAL package provides generic support
+           for this processor variant. It is also necessary to
+           select a specific target platform HAL package."
+}
+
 package CYGPKG_HAL_POWERPC_COGENT {
 	alias		{ "Cogent CMA286/287 board" hal_powerpc_cogent powerpc_cogent_hal }
 	directory	hal/powerpc/cogent
@@ -1037,6 +1116,27 @@ package CYGPKG_HAL_MIPS_TX39_JMR3904 {
 }
 
 
+package CYGPKG_HAL_MIPS_TX49 {
+	alias		{ "TX49 chip HAL" hal_tx49 tx49_hal tx49_arch_hal }
+	directory	hal/mips/tx49/
+	script		hal_mips_tx49.cdl
+	hardware
+        description "
+           The TX49 architecture HAL package provides generic support
+           for this processor architecture. It is also necessary to
+           select a specific target platform HAL package."
+}
+
+package CYGPKG_HAL_MIPS_TX49_REF4955 {
+	alias		{ "Toshiba TX4955 reference platform" hal_tx49_ref4955 tx49_ref4955_hal }
+	directory	hal/mips/ref4955
+	script		hal_mips_tx49_ref4955.cdl
+	hardware
+	description "
+           The REF4955 HAL package should be used when targetting the
+           actual hardware."
+}
+
 
 package CYGPKG_HAL_MIPS_VR4300 {
 	alias		{ "VR4300 chip HAL" hal_vr4300 vr4300_hal vr4300_arch_hal }
@@ -1231,6 +1331,19 @@ target brutus {
         eCos on an Intel StrongARM SA1100 evaluation board."
 }
 
+target sa1100mm {
+	alias { "Intel StrongARM SA1100 Multimedia board" sa1100mm }
+	packages { CYGPKG_HAL_ARM
+                   CYGPKG_HAL_ARM_SA11X0
+                   CYGPKG_HAL_ARM_SA11X0_SA1100MM
+		   CYGPKG_IO_SERIAL_ARM_SA11X0
+        }
+        description "
+        The sa1100mm target provides the packages needed to run
+        eCos on an Intel StrongARM SA1100 Multimedia evaluation board."
+}
+
+
 target edb7xxx {
         alias		{ "Cirrus Logic development board" edb7211 eb7xxx eb7211 }
 	packages	{ CYGPKG_HAL_ARM
@@ -1259,6 +1372,7 @@ CMA230 (ARM7TDMI) or CMA222 (ARM710T) bo
 target sh7708 {
 	alias       { "Hitachi EDK/SH7708 board" edk7708 }
 	packages    { CYGPKG_HAL_SH
+                      CYGPKG_HAL_SH_SH3
                       CYGPKG_HAL_SH_EDK7708
                       CYGPKG_DEVICES_WALLCLOCK_SH3 
 	              CYGPKG_IO_SERIAL_SH_SCI
@@ -1273,6 +1387,7 @@ target sh7708 {
 target cq7708 {
         alias { "CqREEK SH7708 board" cq7708 }
         packages { CYGPKG_HAL_SH
+                   CYGPKG_HAL_SH_SH3
                    CYGPKG_HAL_SH_SH7708_CQ7708
 	           CYGPKG_IO_SERIAL_SH_SCI
 	           CYGPKG_IO_SERIAL_SH_CQ7708
@@ -1282,6 +1397,17 @@ target cq7708 {
            eCos on a CqREEK SH7708 board."
 }
 
+target cq7750 {
+        alias { "CqREEK SH7750 board" cqsh4 }
+        packages { CYGPKG_HAL_SH
+                   CYGPKG_HAL_SH_SH4
+                   CYGPKG_HAL_SH_SH7750_CQ7750
+                   CYGPKG_IO_SERIAL_SH_SCIF }
+        description "
+           The sh7750 target provides the packages needed to run
+           eCos on a CqREEK SH7750 board."
+}
+
 # --------------------------------------------------------------------------
 # i386 targets
 target linux {
@@ -1414,6 +1540,21 @@ target tx39_sim {
            use any of the eCos device drivers when the simulator
            is running in this mode."
 }
+target ref4955 {
+        alias		{ "Toshiba TX4955 reference platform" tx49 }
+	packages        { CYGPKG_HAL_MIPS
+                          CYGPKG_HAL_MIPS_TX49
+                          CYGPKG_HAL_MIPS_TX49_REF4955
+                          CYGPKG_IO_SERIAL_GENERIC_16X5X
+                          CYGPKG_IO_SERIAL_MIPS_REF4955
+                          CYGPKG_DEVICES_WALLCLOCK_MIPS_REF4955
+                          CYGPKG_DEVICES_WALLCLOCK_DALLAS_DS1742
+        }
+        description "
+           The ref4955 target provides the packages needed to run
+           eCos on a Toshiba TX4955 reference platform."
+}
+
 target vrc4373 {
         alias		{ "NEC VRC4373 board" }
 	packages        { CYGPKG_HAL_MIPS
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/ChangeLog
@@ -0,0 +1,41 @@
+2000-10-25  Drew Moseley  <dmoseley@redhat.com>
+
+	* src/sa1100mm_misc.c: New file.  Support for SA1100 Multimedia
+	board.
+	* include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.mlt: Ditto.
+	* include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi: Ditto.
+	* include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h: Ditto.
+	* include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.mlt: Ditto.
+	* include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi: Ditto.
+	* include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h: Ditto.
+	* include/sa1100mm.h: Ditto.
+	* include/hal_platform_setup.h: Ditto.
+	* include/hal_platform_ints.h: Ditto.
+	* cdl/hal_arm_sa11x0_sa1100mm.cdl: Ditto.
+	* Changelog: Ditto.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/cdl/hal_arm_sa11x0_sa1100mm.cdl
@@ -0,0 +1,329 @@
+# ====================================================================
+#
+#      hal_arm_sa11x0_sa1100mm.cdl
+#
+#      ARM SA1100/Multimedia platform HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      dmoseley
+# Original data:  gthomas
+# Contributors:
+# Date:           2000-10-25
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+cdl_package CYGPKG_HAL_ARM_SA11X0_SA1100MM {
+    display       "ARM SA1100/Multimedia evaluation board"
+    parent        CYGPKG_HAL_ARM_SA11X0
+    hardware
+    include_dir   cyg/hal
+    define_header hal_arm_sa11x0_sa1100mm.h
+    description   "
+        This HAL platform package provides generic
+        support for the Intel StrongARM SA1100 based evalation board, 
+	known as 'SA1100 Multimedia'."
+
+    compile       sa1100mm_misc.c
+
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_arm.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H  <pkgconf/hal_arm_sa11x0.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_arm_sa11x0_sa1100mm.h>"
+	puts $::cdl_header "#define HAL_PLATFORM_CPU    \"StrongARM 1100\""
+        puts $::cdl_header "#define HAL_PLATFORM_BOARD  \"Multimedia development system\""
+        puts $::cdl_header "#define HAL_PLATFORM_EXTRA  \"\""
+    }
+
+    cdl_component CYG_HAL_STARTUP {
+        display       "Startup type"
+        flavor        data
+        default_value {"RAM"}
+        legal_values  {"RAM" "ROM"}
+	no_define
+	define -file system.h CYG_HAL_STARTUP
+        description   "
+           When targetting the SA1100 Multimedia eval board it is possible to build
+           the system for either RAM bootstrap or ROM bootstrap(s). Select
+           'ram' when building programs to load into RAM using eCos GDB
+           stubs.  Select 'rom' when building a stand-alone application
+           which will be put into ROM, or for the special case of
+           building the eCos GDB stubs themselves."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD {
+        display       "Diagnostic serial port baud rate"
+        flavor        data
+        legal_values  9600 19200 38400 115200
+        default_value 38400
+        description   "
+            This option selects the baud rate used for the diagnostic port.
+            Note: this should match the value chosen for the GDB port if the
+            diagnostic and GDB port are the same."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL_BAUD {
+        display       "GDB serial port baud rate"
+        flavor        data
+        legal_values  9600 19200 38400 115200
+        default_value 38400
+        description   "
+            This option selects the baud rate used for the diagnostic port.
+            Note: this should match the value chosen for the GDB port if the
+            diagnostic and GDB port are the same."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+        display      "Number of communication channels on the board"
+        flavor       data
+        calculated   2
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_DEFAULT {
+        display      "Default console channel."
+        flavor       data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        calculated   1
+    }
+ 
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+        display          "Debug serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    1
+        description      "
+            The multimedia board has two serial ports. This option
+            chooses which port will be used to connect to a host
+            running GDB."
+     }
+ 
+     cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+         display          "Diagnostic serial port"
+         flavor data
+         legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+         default_value    1
+         description      "
+            The multimedia board has two serial ports.  This option
+            chooses which port will be used for diagnostic output."
+     }
+
+    cdl_component CYGBLD_GLOBAL_OPTIONS {
+        display "Global build options"
+        flavor  none
+        no_define
+        description   "
+	    Global build options including control over
+	    compiler flags, linker flags and choice of toolchain."
+
+
+        parent  CYGPKG_NONE
+
+        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+            display "Global command prefix"
+            flavor  data
+            no_define
+            default_value { "arm-elf" }
+            description "
+                This option specifies the command prefix used when
+                invoking the build tools."
+        }
+
+        cdl_option CYGBLD_GLOBAL_CFLAGS {
+            display "Global compiler flags"
+            flavor  data
+            no_define
+            default_value { "-mcpu=strongarm1100 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
+            description   "
+                This option controls the global compiler flags which are used to
+                compile all packages by default. Individual packages may define
+                options which override these global flags."
+        }
+
+        cdl_option CYGBLD_GLOBAL_LDFLAGS {
+            display "Global linker flags"
+            flavor  data
+            no_define
+            default_value { "-Wl,--gc-sections -Wl,-static -g -O2 -nostdlib" }
+            description   "
+                This option controls the global linker flags. Individual
+                packages may define options which override these global flags."
+        }
+
+        cdl_option CYGBLD_BUILD_GDB_STUBS {
+            display "Build GDB stub ROM image"
+            default_value 0
+            requires { CYG_HAL_STARTUP == "ROM" }
+            requires CYGSEM_HAL_ROM_MONITOR
+            requires CYGBLD_BUILD_COMMON_GDB_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+            requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
+            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
+            no_define
+            description "
+                This option enables the building of the GDB stubs for the
+                board. The common HAL controls takes care of most of the
+                build process, but the final conversion from ELF image to
+                binary data is handled by the platform CDL, allowing
+                relocation of the data if necessary."
+
+            make -priority 320 {
+                <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
+                $(OBJCOPY) -O binary $< $@
+            }
+        }
+    }
+
+
+    cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+         display       "Work with a ROM monitor"
+         flavor        booldata
+         legal_values  { "Generic" "GDB_stubs" }
+         default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
+         parent        CYGPKG_HAL_ROM_MONITOR
+         requires      { CYG_HAL_STARTUP == "RAM" }
+         description   "
+             Support can be enabled for different varieties of ROM monitor.
+             This support changes various eCos semantics such as the encoding
+             of diagnostic output, or the overriding of hardware interrupt
+             vectors.
+             Firstly there is \"Generic\" support which prevents the HAL
+             from overriding the hardware vectors that it does not use, to
+             instead allow an installed ROM monitor to handle them. This is
+             the most basic support which is likely to be common to most
+             implementations of ROM monitor.
+             \"GDB_stubs\" provides support when GDB stubs are included in
+             the ROM monitor or boot ROM."
+    }
+
+    cdl_component CYGPKG_HAL_ARM_SA11X0_SA1100MM_OPTIONS {
+        display "StrongARM SA1100/Multimedia build options"
+        flavor  none
+        no_define
+        description   "
+	    Package specific build options including control over
+	    compiler flags used only in building this package,
+	    and details of which tests are built."
+
+
+        cdl_option CYGPKG_HAL_ARM_SA11X0_SA1100MM_CFLAGS_ADD {
+            display "Additional compiler flags"
+            flavor  data
+            no_define
+            default_value { "" }
+            description   "
+                This option modifies the set of compiler flags for
+                building the StrongARM SA1100 Multimedia HAL. These flags are used in addition
+                to the set of global flags."
+        }
+
+        cdl_option CYGPKG_HAL_ARM_SA11X0_SA1100MM_CFLAGS_REMOVE {
+            display "Supressed compiler flags"
+            flavor  data
+            no_define
+            default_value { "" }
+            description   "
+                This option modifies the set of compiler flags for
+                building the StrongARM SA1100 Multimedia HAL. These flags are removed from
+                the set of global flags if present."
+        }
+
+        cdl_option CYGPKG_HAL_ARM_SA11X0_SA1100MM_TESTS {
+            display "StrongARM SA1100/Multimedia tests"
+            flavor  data
+            no_define
+#            calculated { "tests/dram-test" }
+            calculated { "" }
+            description   "
+                This option specifies the set of tests for the StrongARM SA1100 Multimedia HAL."
+        }
+    }
+
+    cdl_component CYGHWR_MEMORY_LAYOUT {
+        display "Memory layout"
+        flavor data
+        no_define
+        calculated { CYG_HAL_STARTUP == "RAM" ? "arm_sa11x0_sa1100mm_ram" : \
+	                                        "arm_sa11x0_sa1100mm_rom" }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+            display "Memory layout linker script fragment"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi>" : \
+                                                    "<pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi>" }
+        }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_H {
+            display "Memory layout header file"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_H
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h>" : \
+                                                    "<pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h>" }
+        }
+    }
+
+    cdl_option CYGSEM_HAL_ROM_MONITOR {
+        display       "Behave as a ROM monitor"
+        flavor        bool
+        default_value 0
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      { CYG_HAL_STARTUP == "ROM" }
+        description   "
+            Enable this option if this program is to be used as a ROM monitor,
+            i.e. applications will be loaded into RAM on the board, and this
+            ROM monitor may process exceptions or interrupts generated from the
+            application. This enables features such as utilizing a separate
+            interrupt stack when exceptions are generated."
+    }
+    
+    cdl_option CYGBLD_BUILD_REDBOOT_BIN {
+        display       "Build Redboot ROM binary image"
+        active_if     CYGBLD_BUILD_REDBOOT
+        default_value 1
+        no_define
+        description "This option enables the conversion of the Redboot ELF
+                     image to a binary image suitable for ROM programming."
+
+        make -priority 325 {
+            <PREFIX>/bin/redboot.bin : <PREFIX>/bin/redboot.elf
+            $(OBJCOPY) --strip-debug $< $(@:.bin=.img) 
+            $(OBJCOPY) -O srec $< $(@:.bin=.srec)
+            $(OBJCOPY) -O binary $< $@
+        }
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_ints.h
@@ -0,0 +1,108 @@
+#ifndef CYGONCE_HAL_PLATFORM_INTS_H
+#define CYGONCE_HAL_PLATFORM_INTS_H
+//==========================================================================
+//
+//      hal_platform_ints.h
+//
+//      HAL Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+// Date:         2000-05-08
+// Purpose:      Define Interrupt support
+// Description:  The interrupt details for the SA1100/Multimedia are defined here.
+// Usage:
+//               #include <cyg/hal/hal_platform_ints.h>
+//               ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#define CYGNUM_HAL_INTERRUPT_GPIO0   0
+#define CYGNUM_HAL_INTERRUPT_GPIO1   1
+#define CYGNUM_HAL_INTERRUPT_GPIO2   2
+#define CYGNUM_HAL_INTERRUPT_GPIO3   3
+#define CYGNUM_HAL_INTERRUPT_GPIO4   4
+#define CYGNUM_HAL_INTERRUPT_GPIO5   5
+#define CYGNUM_HAL_INTERRUPT_GPIO6   6
+#define CYGNUM_HAL_INTERRUPT_GPIO7   7
+#define CYGNUM_HAL_INTERRUPT_GPIO8   8
+#define CYGNUM_HAL_INTERRUPT_GPIO9   9
+#define CYGNUM_HAL_INTERRUPT_GPIO10  10
+#define CYGNUM_HAL_INTERRUPT_GPIO    11  // Don't use directly
+#define CYGNUM_HAL_INTERRUPT_LCD     12
+#define CYGNUM_HAL_INTERRUPT_UDC     13
+#define CYGNUM_HAL_INTERRUPT_UART1   15
+#define CYGNUM_HAL_INTERRUPT_UART2   16
+#define CYGNUM_HAL_INTERRUPT_UART3   17
+#define CYGNUM_HAL_INTERRUPT_MCP     18
+#define CYGNUM_HAL_INTERRUPT_SSP     19
+#define CYGNUM_HAL_INTERRUPT_TIMER0  26
+#define CYGNUM_HAL_INTERRUPT_TIMER1  27
+#define CYGNUM_HAL_INTERRUPT_TIMER2  28
+#define CYGNUM_HAL_INTERRUPT_TIMER3  29
+#define CYGNUM_HAL_INTERRUPT_HZ      30
+#define CYGNUM_HAL_INTERRUPT_ALARM   31
+
+// GPIO bits 31..11 can generate interrupts as well, but they all
+// end up clumped into interrupt signal #11.  Using the symbols
+// below allow for detection of these separately.
+
+#define CYGNUM_HAL_INTERRUPT_GPIO11  (32+11)
+#define CYGNUM_HAL_INTERRUPT_GPIO12  (32+12)
+#define CYGNUM_HAL_INTERRUPT_GPIO13  (32+13)
+#define CYGNUM_HAL_INTERRUPT_GPIO14  (32+14)
+#define CYGNUM_HAL_INTERRUPT_GPIO15  (32+15)
+#define CYGNUM_HAL_INTERRUPT_GPIO16  (32+16)
+#define CYGNUM_HAL_INTERRUPT_GPIO17  (32+17)
+#define CYGNUM_HAL_INTERRUPT_GPIO18  (32+18)
+#define CYGNUM_HAL_INTERRUPT_GPIO19  (32+19)
+#define CYGNUM_HAL_INTERRUPT_GPIO20  (32+20)
+#define CYGNUM_HAL_INTERRUPT_GPIO21  (32+21)
+#define CYGNUM_HAL_INTERRUPT_GPIO22  (32+22)
+#define CYGNUM_HAL_INTERRUPT_GPIO23  (32+23)
+#define CYGNUM_HAL_INTERRUPT_GPIO24  (32+24)
+#define CYGNUM_HAL_INTERRUPT_GPIO25  (32+25)
+#define CYGNUM_HAL_INTERRUPT_GPIO26  (32+26)
+#define CYGNUM_HAL_INTERRUPT_GPIO27  (32+27)
+
+#define CYGNUM_HAL_INTERRUPT_NONE    -1
+
+#define CYGNUM_HAL_ISR_MIN            0
+#define CYGNUM_HAL_ISR_MAX           (27+32)
+
+#define CYGNUM_HAL_ISR_COUNT            (CYGNUM_HAL_ISR_MAX+1)
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC        CYGNUM_HAL_INTERRUPT_TIMER0
+
+#endif // CYGONCE_HAL_PLATFORM_INTS_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/hal_platform_setup.h
@@ -0,0 +1,370 @@
+#ifndef CYGONCE_HAL_PLATFORM_SETUP_H
+#define CYGONCE_HAL_PLATFORM_SETUP_H
+
+/*=============================================================================
+//
+//      hal_platform_setup.h
+//
+//      Platform specific support for HAL (assembly code)
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, dmoseley
+//               Travis C. Furrer <furrer@mit.edu>
+// Date:         2000-05-08
+// Purpose:      Intel SA1100 Multimedia platform specific support routines
+// Description: 
+// Usage:        #include <cyg/hal/hal_platform_setup.h>
+//     This file should only be used by "vectors.S"        
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+#include <pkgconf/system.h>             // System-wide configuration info
+#include CYGBLD_HAL_PLATFORM_H          // Platform specific configuration
+#include <cyg/hal/hal_sa11x0.h>         // Platform specific hardware definitions
+#include <cyg/hal/hal_mmu.h>            // MMU definitions
+
+#if defined(CYG_HAL_STARTUP_ROM)
+#define PLATFORM_SETUP1 _platform_setup1
+#define CYGHWR_HAL_ARM_HAS_MMU
+
+#if (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 59000)
+#define SA11X0_PLL_CLOCK 0x0        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 73700)
+#define SA11X0_PLL_CLOCK 0x1
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 88500)
+#define SA11X0_PLL_CLOCK 0x2        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 103200) 
+#define SA11X0_PLL_CLOCK 0x3        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 118000)
+#define SA11X0_PLL_CLOCK 0x4        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 132700)
+#define SA11X0_PLL_CLOCK 0x5        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 147500)
+#define SA11X0_PLL_CLOCK 0x6        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 162200)
+#define SA11X0_PLL_CLOCK 0x7        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 176900)
+#define SA11X0_PLL_CLOCK 0x8        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 191700)
+#define SA11X0_PLL_CLOCK 0x9        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 206400)
+#define SA11X0_PLL_CLOCK 0xA        
+#elif (CYGHWR_HAL_ARM_SA11X0_PROCESSOR_CLOCK == 221200)
+#define SA11X0_PLL_CLOCK 0xB        
+#else
+#error Invalid processor clock speed
+#endif
+
+// This function is called very early on by the boot ROM (or by any ROM
+// based startup).  It's job is to initialize the hardware to a known state
+// so that eCos applications can execute properly.
+
+// This version of the code is patterned after the contribution from
+// Travis Furer (@MIT)                
+
+
+// Define macro used to diddle the LEDs during early initialization.
+// Can use r0+r1.  Argument in \x.
+
+#define CYGHWR_LED_MACRO _set_LEDS \x
+        
+// Initialize GPIOs
+#define GPIO_GRER (SA11X0_GPIO_RISING_EDGE_DETECT-SA11X0_GPIO_PIN_LEVEL)
+#define GPIO_GFER (SA11X0_GPIO_FALLING_EDGE_DETECT-SA11X0_GPIO_PIN_LEVEL)
+#define GPIO_GAFR (SA11X0_GPIO_ALTERNATE_FUNCTION-SA11X0_GPIO_PIN_LEVEL)
+#define GPIO_GEDR (SA11X0_GPIO_EDGE_DETECT_STATUS-SA11X0_GPIO_PIN_LEVEL)
+#define GPIO_GPDR (SA11X0_GPIO_PIN_DIRECTION-SA11X0_GPIO_PIN_LEVEL)
+#define GPIO_GPCR (SA11X0_GPIO_PIN_OUTPUT_CLEAR-SA11X0_GPIO_PIN_LEVEL)
+        .macro  _init_GPIO
+        ldr     r1,=SA11X0_GPIO_PIN_LEVEL
+        mov     r0,#0           
+        str     r0,[r1,#GPIO_GRER]      // Disable rising edge detects
+        str     r0,[r1,#GPIO_GFER]      // Disable falling edge detects
+        str     r0,[r1,#GPIO_GAFR]      // No alt. funcs. during init
+        sub     r0,r0,#1        
+        str     r0,[r1,#GPIO_GPCR]      // Force all outputs to low
+        str     r0,[r1,#GPIO_GEDR]      // Clear edge detect status
+        ldr     r0,=0x00100300  
+        str     r0,[r1,#GPIO_GPDR]      // Only LEDs outputs (for now)
+        .endm
+
+#define DISCRETE_LED_REG_BASE     0x18800000
+#define KEYPAD_IO_O               0x4
+#define DISCRETE_LED_O            0x6
+#define HEX_LED_REG_BASE          0x18c00000
+#define HEX_LED_O                 0x0
+#define HEX_DATA_MASK             0x0F
+#define HEX_LED_0_STROBE          0x10
+#define HEX_LED_1_STROBE          0x20
+#define HEX_LED_BOTH_STROBES      (HEX_LED_0_STROBE | HEX_LED_1_STROBE)
+
+// Display value on hex LED display
+        .macro  _set_LEDS,val
+        ldr     r1, =HEX_LED_REG_BASE
+
+        ldr     r2, =\val
+        and     r2, r2, #0xf
+        orr	r0, r2, #HEX_LED_0_STROBE
+        str     r0, [r1, #HEX_LED_O]
+
+        ldr     r2, =\val
+        mov     r2, r2, LSR #4
+        orr	r0, r2, #HEX_LED_1_STROBE
+        str     r0, [r1, #HEX_LED_O]
+        
+        nop
+        .endm
+
+// Initialize HEX display.
+        .macro  _init_HEX_DISPLAY
+        ldr     r1, =DISCRETE_LED_REG_BASE
+        ldr     r2, =~0
+        str     r2, [r1, #KEYPAD_IO_O]
+        str     r2, [r1, #DISCRETE_LED_O]
+        _set_LEDS 0x23
+        .endm
+
+// Setup pin directions:
+//  inputs: all serial receive pins
+// outputs: all LCD pins, all serial transmit pins
+        .macro  _init_PERIPHERAL_PINS
+        ldr     r0,=0x00355FFF
+        ldr     r1,=SA11X0_PPC_PIN_DIRECTION
+        str     r0,[r1]
+        mov     r0,#0                           // Force initial state
+        ldr     r1,=SA11X0_PPC_PIN_STATE
+        str     r0,[r1]
+        ldr     r1,=SA11X0_PPC_PIN_ASSIGNMENT   // Disable any reassignments
+        str     r0,[r1]
+        .endm
+        
+// Set core frequency (this can take up to 150us)        
+        .macro  _set_CLOCK_FREQUENCY
+        mov     r0,#SA11X0_PLL_CLOCK
+        ldr     r1,=SA11X0_PWR_MGR_PLL_CONFIG
+        str     r0,[r1]
+        .endm
+
+// Enable clock switching (must be done after setting core frequency)
+        .macro  _enable_CLOCK_SWITCHING
+        mcr     p15,0,r1,c15,c1,2
+        .endm
+
+// Initialize memory interfaces. (ROM, SRAM, Flash, DRAM, etc)
+//
+// SA1100 Multimedia memory is as follows:
+//   ROM     128K (assuming 32 bit accesses)
+//   Flash   4M (assuming 32 bit accesses)
+//   RAM     8M
+//
+// From SA11X0 Manual, Section 10.7.1:
+//
+//  The following flow should be followed when coming out of
+//  reset, whether for sleep or power-up:
+//
+//    - Read boot ROM and write to memory configuration
+//      registers, but do not enable DRAM banks.
+//
+//    - If necessary, finish any DRAM power-up wait period
+//      (usually about 100us).
+//
+//    - If coming out of sleep, see Section 9.5, Power
+//      Manager on page 9-26 on how to release the nCAS and
+//      nRAS pins from their self-refresh state.
+//
+//    - If coming out of sleep, wait the DRAM-specific
+//      post-self-refresh precharge period before issuing
+//      a new DRAM transaction.
+//
+//    - If power-on reset, perform the number of
+//      initialization refreshes required by the specific
+//      DRAM part by reading disabled banks. A read from
+//      any disabled bank will refresh all four banks.
+//
+//    - Enable DRAM banks by setting MDCNFG:DE3:0.
+//
+#define DRAM_CONFIG_VALUE      (SA11X0_DRAM_REFRESH_INTERVAL(312)              | \
+                                SA11X0_DATA_INPUT_LATCH_CAS_PLUS_THREE         | \
+                                SA11X0_DRAM_CAS_BEFORE_RAS(5)                  | \
+                                SA11X0_DRAM_RAS_PRECHARGE(4)                   | \
+                                SA11X0_DRAM_CLOCK_CPU_CLOCK                    | \
+                                SA11X0_DRAM_ROW_ADDRESS_BITS_11                | \
+                                SA11X0_DRAM_BANK_0_ENABLED                     | \
+                                SA11X0_DRAM_BANK_1_DISABLED                    | \
+                                SA11X0_DRAM_BANK_2_DISABLED                    | \
+                                SA11X0_DRAM_BANK_3_DISABLED)
+
+#define DRAM_CAS0_WAVEFORM     0xF0F0F00F
+#define DRAM_CAS1_WAVEFORM     0XF0F0F0F0
+#define DRAM_CAS2_WAVEFORM     0xFFFFFFF0
+
+#define BANK_0_CONTROL_VALUE   SA11X0_STATIC_ROM_TYPE_FLASH                    | \
+                               SA11X0_STATIC_ROM_BUS_WIDTH_16_BITS             | \
+                               SA11X0_STATIC_ROM_DELAY_FIRST_ACCESS(0x1F)      | \
+                               SA11X0_STATIC_ROM_DELAY_NEXT_ACCESS(0x1F)       | \
+                               SA11X0_STATIC_ROM_RECOVERY(0x7)
+#define BANK_1_CONTROL_VALUE   SA11X0_STATIC_ROM_TYPE_FLASH                    | \
+                               SA11X0_STATIC_ROM_BUS_WIDTH_32_BITS             | \
+                               SA11X0_STATIC_ROM_DELAY_FIRST_ACCESS(0x1F)      | \
+                               SA11X0_STATIC_ROM_DELAY_NEXT_ACCESS(0x1F)       | \
+                               SA11X0_STATIC_ROM_RECOVERY(0x7)
+#define STATIC_CONTROL_0_VALUE (SA11X0_STATIC_ROM_BANK_0(BANK_0_CONTROL_VALUE) | \
+                                SA11X0_STATIC_ROM_BANK_1(BANK_1_CONTROL_VALUE))
+
+#define BANK_2_CONTROL_VALUE   SA11X0_STATIC_ROM_TYPE_FLASH                    | \
+                               SA11X0_STATIC_ROM_BUS_WIDTH_16_BITS             | \
+                               SA11X0_STATIC_ROM_DELAY_FIRST_ACCESS(0x1F)      | \
+                               SA11X0_STATIC_ROM_DELAY_NEXT_ACCESS(0x1F)       | \
+                               SA11X0_STATIC_ROM_RECOVERY(0x7)
+#define BANK_3_CONTROL_VALUE   SA11X0_STATIC_ROM_TYPE_FLASH                    | \
+                               SA11X0_STATIC_ROM_BUS_WIDTH_32_BITS             | \
+                               SA11X0_STATIC_ROM_DELAY_FIRST_ACCESS(0x1F)      | \
+                               SA11X0_STATIC_ROM_DELAY_NEXT_ACCESS(0x1F)       | \
+                               SA11X0_STATIC_ROM_RECOVERY(0x7)
+#define STATIC_CONTROL_1_VALUE (SA11X0_STATIC_ROM_BANK_2(BANK_2_CONTROL_VALUE) | \
+                                SA11X0_STATIC_ROM_BANK_3(BANK_3_CONTROL_VALUE))
+
+        .macro  _init_MEM_INTERFACES
+        /*
+         * Initialize the DRAM Controller
+         */
+        ldr     r0, =SA11X0_DRAM_CONFIGURATION
+        ldr     r1, =DRAM_CONFIG_VALUE
+        str     r1, [r0]
+                
+        ldr     r0, =SA11X0_DRAM0_CAS_0
+        ldr     r1, =DRAM_CAS0_WAVEFORM
+        str     r1, [r0]
+                
+        ldr     r0, =SA11X0_DRAM0_CAS_1
+        ldr     r1, =DRAM_CAS1_WAVEFORM
+        str     r1, [r0]
+                
+        ldr     r0, =SA11X0_DRAM0_CAS_2
+        ldr     r1, =DRAM_CAS2_WAVEFORM
+        str     r1, [r0]
+                
+        ldr     r0, =SA11X0_STATIC_CONTROL_0
+
+        /*
+         * Get the reset ROM setup
+         */
+        ldr     r1, [r0]
+
+        /*
+         * Get the 16/32 bit setting to merge into the appropriate
+         * register values later on.
+         */
+        and     r1, r1, #SA11X0_STATIC_ROM_BUS_WIDTH_MASK
+
+        /*
+         * MSC0 - bank 0 ROM, bank 1 FLASH
+         */
+        ldr     r2, =STATIC_CONTROL_0_VALUE
+        orr     r1, r1, r2
+
+        str     r1, [r0]
+
+        /*
+         * MSC1 - bank 2 SRAM, bank 3 REG
+         */
+        ldr     r0, =SA11X0_STATIC_CONTROL_1
+        ldr     r1, =STATIC_CONTROL_1_VALUE
+        str     r1, [r0]
+
+        /*
+         * Delay to let the DRAM warm up
+         */
+        ldr     r0, =0x200
+0:      subs    r0, r0, #1
+        bne     0b
+
+        .endm
+
+        
+        .macro  _platform_setup1
+        nop                                                               
+        nop                                                               
+        nop                                                               
+        nop                                                               
+        nop                                                               
+        nop                                                               
+        nop                                                               
+        nop                                                               
+        nop                                                               
+
+        _init_GPIO
+        _init_HEX_DISPLAY               /* this is flaky sometimes */       
+        _init_HEX_DISPLAY               /* so do it twice just in case */   
+
+        _set_LEDS 0x15
+
+        _init_PERIPHERAL_PINS                                               
+        _set_LEDS 0x13
+                                                                           
+        _set_CLOCK_FREQUENCY                                                
+        _enable_CLOCK_SWITCHING                                             
+        _set_LEDS 0x12
+                                                                           
+        _init_MEM_INTERFACES                                                
+        _set_LEDS 0x11
+                                                                           
+        // Set up a stack [for calling C code]
+        ldr     r1,=__startup_stack
+        ldr     r2,=SA11X0_RAM_BANK0_BASE
+        orr     sp,r1,r2
+
+        // Create MMU tables
+        bl      hal_mmu_init
+
+        _set_LEDS 0x09
+        // Enable MMU
+        ldr     r2,=10f
+        ldr     r1,=MMU_Control_Init|MMU_Control_M
+        mcr     MMU_CP,0,r1,MMU_Control,c0
+        mov     pc,r2    /* Change address spaces */
+
+        nop
+        nop
+        nop
+10:
+        _set_LEDS 0x08
+
+        .endm
+                        
+#else // STARTUP_ROM        
+#define PLATFORM_SETUP1
+#endif
+
+/*---------------------------------------------------------------------------*/
+/* end of hal_platform_setup.h                                               */
+#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.h
@@ -0,0 +1,10 @@
+// eCos memory layout - Tue Apr 04 20:19:06 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x800000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.ldi
@@ -0,0 +1,24 @@
+// eCos memory layout - Tue Apr 04 20:19:06 2000
+
+// This is a generated file - do not edit
+
+MEMORY
+{
+    ram : ORIGIN = 0, LENGTH = 0x800000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+    SECTION_rom_vectors (ram, 0x10000, LMA_EQ_VMA)
+    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_ram.mlt
@@ -0,0 +1,12 @@
+version 0
+region ram 0 800000 0 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section rom_vectors 0 1 0 1 1 1 1 1 10000 10000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata rodata !
+section rodata 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 4 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 4 0 1 0 1 0 1 data data !
+section data 0 4 0 1 0 1 0 1 bss bss !
+section bss 0 4 0 1 0 0 0 0 !
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.h
@@ -0,0 +1,16 @@
+// eCos memory layout - Tue Apr 04 20:19:06 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#define CYGMEM_REGION_ram (0)
+#define CYGMEM_REGION_ram_SIZE (0x800000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x50000000)
+#define CYGMEM_REGION_rom_SIZE (0x40000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+extern char CYG_LABEL_NAME (_reserved) [];
+#define CYGMEM_SECTION_reserved (CYG_LABEL_NAME (_reserved))
+#define CYGMEM_SECTION_reserved_SIZE (0x8000)
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.ldi
@@ -0,0 +1,25 @@
+// eCos memory layout - Tue Apr 04 20:19:06 2000
+
+// This is a generated file - do not edit
+
+MEMORY
+{
+    ram : ORIGIN = 0, LENGTH = 0x800000
+    rom : ORIGIN = 0x50000000, LENGTH = 0x40000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_rom_vectors (rom, 0x50000000, LMA_EQ_VMA)
+    SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fixed_vectors (ram, 0x20, LMA_EQ_VMA)
+    SECTION_data (ram, 0x8000, FOLLOWING (.gcc_except_table))
+    SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/pkgconf/mlt_arm_sa11x0_sa1100mm_rom.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 0 800000 0 !
+region rom 50000000 40000 1 !
+section fixed_vectors 0 1 0 1 1 0 1 0 20 20 !
+section data 0 1 1 1 1 1 0 0 8000 bss !
+section bss 0 4 0 1 0 0 0 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 50000000 50000000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata rodata !
+section rodata 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 4 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 4 0 1 0 0 0 1 data !
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/include/sa1100mm.h
@@ -0,0 +1,50 @@
+#ifndef CYGONCE_SA1100MM_H
+#define CYGONCE_SA1100MM_H
+
+/*=============================================================================
+//
+//      sa1100mm.h
+//
+//      Platform specific support (registers, etc)
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    dmoseley
+// Contributors: dmoseley
+// Date:         2000-10-25
+// Purpose:      Intel SA1110/Multimedia platform specific support routines
+// Description: 
+// Usage:        #include <cyg/hal/sa1100mm.h>
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================*/
+
+/*---------------------------------------------------------------------------*/
+/* end of sa1100mm.h                                                         */
+#endif /* CYGONCE_SA1100MM_H */
new file mode 100644
--- /dev/null
+++ b/packages/hal/arm/sa11x0/sa1100mm/current/src/sa1100mm_misc.c
@@ -0,0 +1,227 @@
+//==========================================================================
+//
+//      sa1100mm_misc.c
+//
+//      HAL misc board support code for StrongARM SA1110/Multimedia
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//
+// -------------------------------------------
+// The contents of this file are subject to the Red Hat eCos Public License
+// Version 1.1 (the "License"); you may not use this file except in
+// compliance with the License.  You may obtain a copy of the License at
+// http://www.redhat.com/
+//
+// Software distributed under the License is distributed on an "AS IS"
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the
+// License for the specific language governing rights and limitations under
+// the License. 
+//
+// The Original Code is eCos - Embedded Configurable Operating System,
+// released September 30, 1998.
+//
+// The Initial Developer of the Original Code is Red Hat.
+// Portions created by Red Hat are
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
+// All Rights Reserved.
+// -------------------------------------------
+//
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: hmt, dmoseley
+//               Travis C. Furrer <furrer@mit.edu>
+// Date:         2000-05-21
+// Purpose:      HAL board support
+// Description:  Implementations of HAL board interfaces
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_PLATFORM_H
+
+#include <cyg/infra/cyg_type.h>         // base types
+#include <cyg/infra/cyg_trac.h>         // tracing macros
+#include <cyg/infra/cyg_ass.h>          // assertion macros
+
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/hal_arch.h>           // Register state info
+#include <cyg/hal/hal_diag.h>
+#include <cyg/hal/hal_intr.h>           // Interrupt names
+#include <cyg/hal/hal_cache.h>
+#include <cyg/hal/hal_sa11x0.h>         // Hardware definitions
+#include <cyg/hal/sa1100mm.h>           // Platform specifics
+
+#include <cyg/infra/diag.h>             // diag_printf
+
+// -------------------------------------------------------------------------
+// MMU initialization:
+// 
+// These structures are laid down in memory to define the translation
+// table.
+// 
+
+/*
+ * SA-1100 Translation Table Base Bit Masks */
+#define ARM_TRANSLATION_TABLE_MASK               0xFFFFC000
+
+/*
+ * SA-1100 Domain Access Control Bit Masks
+ */
+#define ARM_ACCESS_TYPE_NO_ACCESS(domain_num)    (0x0 << (domain_num)*2)
+#define ARM_ACCESS_TYPE_CLIENT(domain_num)       (0x1 << (domain_num)*2)
+#define ARM_ACCESS_TYPE_MANAGER(domain_num)      (0x3 << (domain_num)*2)
+
+struct ARM_MMU_FIRST_LEVEL_FAULT {
+    int id : 2;
+    int sbz : 30;
+};
+#define ARM_MMU_FIRST_LEVEL_FAULT_ID 0x0
+
+struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE {
+    int id : 2;
+    int imp : 2;
+    int domain : 4;
+    int sbz : 1;
+    int base_address : 23;
+};
+#define ARM_MMU_FIRST_LEVEL_PAGE_TABLE_ID 0x1
+
+struct ARM_MMU_FIRST_LEVEL_SECTION {
+    int id : 2;
+    int b : 1;
+    int c : 1;
+    int imp : 1;
+    int domain : 4;
+    int sbz0 : 1;
+    int ap : 2;
+    int sbz1 : 8;
+    int base_address : 12;
+};
+#define ARM_MMU_FIRST_LEVEL_SECTION_ID 0x2
+
+struct ARM_MMU_FIRST_LEVEL_RESERVED {
+    int id : 2;
+    int sbz : 30;
+};
+#define ARM_MMU_FIRST_LEVEL_RESERVED_ID 0x3
+
+#define ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, table_index) \
+   (unsigned long *)((unsigned long)(ttb_base) + ((table_index) << 2))
+
+#define ARM_FIRST_LEVEL_PAGE_TABLE_SIZE 0x4000
+
+#define ARM_MMU_SECTION(ttb_base, actual_base, virtual_base,              \
+                        cacheable, bufferable, perm)                      \
+    CYG_MACRO_START                                                       \
+        register union ARM_MMU_FIRST_LEVEL_DESCRIPTOR desc;               \
+                                                                          \
+        desc.word = 0;                                                    \
+        desc.section.id = ARM_MMU_FIRST_LEVEL_SECTION_ID;                 \
+        desc.section.domain = 0;                                          \
+        desc.section.c = (cacheable);                                     \
+        desc.section.b = (bufferable);                                    \
+        desc.section.ap = (perm);                                         \
+        desc.section.base_address = (actual_base);                        \
+        *ARM_MMU_FIRST_LEVEL_DESCRIPTOR_ADDRESS(ttb_base, (virtual_base)) \
+                            = desc.word;                                  \
+    CYG_MACRO_END
+
+#define X_ARM_MMU_SECTION(abase,vbase,size,cache,buff,access)      \
+    { int i; int j = abase; int k = vbase;                         \
+      for (i = size; i > 0 ; i--,j++,k++)                          \
+      {                                                            \
+        ARM_MMU_SECTION(ttb_base, j, k, cache, buff, access);      \
+      }                                                            \
+    }
+
+union ARM_MMU_FIRST_LEVEL_DESCRIPTOR {
+    unsigned long word;
+    struct ARM_MMU_FIRST_LEVEL_FAULT fault;
+    struct ARM_MMU_FIRST_LEVEL_PAGE_TABLE page_table;
+    struct ARM_MMU_FIRST_LEVEL_SECTION section;
+    struct ARM_MMU_FIRST_LEVEL_RESERVED reserved;
+};
+
+#define ARM_UNCACHEABLE                         0
+#define ARM_CACHEABLE                           1
+#define ARM_UNBUFFERABLE                        0
+#define ARM_BUFFERABLE                          1
+
+#define ARM_ACCESS_PERM_NONE_NONE               0
+#define ARM_ACCESS_PERM_RO_NONE                 0
+#define ARM_ACCESS_PERM_RO_RO                   0
+#define ARM_ACCESS_PERM_RW_NONE                 1
+#define ARM_ACCESS_PERM_RW_RO                   2
+#define ARM_ACCESS_PERM_RW_RW                   3
+
+void
+hal_mmu_init(void)
+{
+    unsigned long ttb_base = SA11X0_RAM_BANK0_BASE + 0x4000;
+    unsigned long i;
+
+    /*
+     * Set the TTB register
+     */
+    asm volatile ("mcr  p15,0,%0,c2,c0,0" : : "r"(ttb_base) /*:*/);
+
+    /*
+     * Set the Domain Access Control Register
+     */
+    i = ARM_ACCESS_TYPE_MANAGER(0)    | 
+        ARM_ACCESS_TYPE_NO_ACCESS(1)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(2)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(3)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(4)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(5)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(6)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(7)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(8)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(9)  |
+        ARM_ACCESS_TYPE_NO_ACCESS(10) |
+        ARM_ACCESS_TYPE_NO_ACCESS(11) |
+        ARM_ACCESS_TYPE_NO_ACCESS(12) |
+        ARM_ACCESS_TYPE_NO_ACCESS(13) |
+        ARM_ACCESS_TYPE_NO_ACCESS(14) |
+        ARM_ACCESS_TYPE_NO_ACCESS(15);
+    asm volatile ("mcr  p15,0,%0,c3,c0,0" : : "r"(i) /*:*/);
+
+    /*
+     * First clear all TT entries - ie Set them to Faulting
+     */
+    memset((void *)ttb_base, 0, ARM_FIRST_LEVEL_PAGE_TABLE_SIZE);
+
+    /*               Actual  Virtual  Size   Attributes                                                    Function  */
+    /*		     Base     Base     MB      cached?           buffered?        access permissions                 */
+    /*             xxx00000  xxx00000                                                                                */
+    X_ARM_MMU_SECTION(0x000,  0x500,     1,  ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* Boot flash ROMspace */
+    X_ARM_MMU_SECTION(0x080,  0x080,     4,  ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* Application flash ROM */
+    X_ARM_MMU_SECTION(0x100,  0x100,   128,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SA-1101 Development Board Registers */
+    X_ARM_MMU_SECTION(0x180,  0x180,     1,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* Ct8020 DSP */
+    X_ARM_MMU_SECTION(0x184,  0x184,     1,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* XBusReg    */
+    X_ARM_MMU_SECTION(0x188,  0x188,     1,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SysRegA    */
+    X_ARM_MMU_SECTION(0x18C,  0x18C,     1,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* SysRegB    */
+    X_ARM_MMU_SECTION(0x190,  0x190,     4,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CPLD A     */
+    X_ARM_MMU_SECTION(0x194,  0x194,     4,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* CPLD B     */
+    X_ARM_MMU_SECTION(0x200,  0x200,   512,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* PCMCIA Sockets */
+    X_ARM_MMU_SECTION(0xC00,      0,     8,  ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* DRAM Bank 0 */
+    X_ARM_MMU_SECTION(0xE00,  0xE00,   128,  ARM_CACHEABLE,   ARM_BUFFERABLE,   ARM_ACCESS_PERM_RW_RW); /* Zeros (Cache Clean) Bank */
+    X_ARM_MMU_SECTION(0x800,  0x800,  1024,  ARM_UNCACHEABLE, ARM_UNBUFFERABLE, ARM_ACCESS_PERM_RW_RW); /* StrongARM(R) Registers */
+
+}
+
+//
+// Platform specific initialization
+//
+
+void
+plf_hardware_init(void)
+{
+}
--- a/packages/hal/i386/arch/current/ChangeLog
+++ b/packages/hal/i386/arch/current/ChangeLog
@@ -1,3 +1,9 @@
+2000-11-01  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/vectors.S (hal_pc_irq): Use correct register for ISR return value
+	when calling interrupt_end()
+	Thanks to Phil Hinton for reporting.
+
 2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* src/vectors.S (_start): call constructors after initializing
--- a/packages/hal/i386/arch/current/src/vectors.S
+++ b/packages/hal/i386/arch/current/src/vectors.S
@@ -232,7 +232,7 @@ hal_pc_irq:
 	movl	(%ebx, %ecx, 4), %edx
 	# regs is left from the push of ebp above;
 	pushl	%edx
-	pushl	%eax
+	pushl	%esi         # the old eax was saved in esi before hal_intc_ack
 	call	interrupt_end
 	addl	$8, %esp
 #endif /* CYGFUN_HAL_COMMON_KERNEL_SUPPORT */
--- a/packages/hal/i386/linux/current/ChangeLog
+++ b/packages/hal/i386/linux/current/ChangeLog
@@ -1,3 +1,10 @@
+2000-11-02  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/entry.c (_linux_entry): Extend memory using brk() syscall to
+	match memory layout
+
+	* src/syscall-i386-linux-1.0.S: Add brk syscall
+
 2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* include/pkgconf/mlt_i386_linux_ram.mlt:
--- a/packages/hal/i386/linux/current/src/entry.c
+++ b/packages/hal/i386/linux/current/src/entry.c
@@ -32,7 +32,7 @@
 //#####DESCRIPTIONBEGIN####
 //
 // Author(s):   proven
-// Contributors:proven, jskov
+// Contributors:proven, jskov, jlarmour
 // Date:        1999-01-06
 // Purpose:     Entry point for Linux synthetic target.
 //
@@ -40,18 +40,29 @@
 //
 //=========================================================================
 
+#include <pkgconf/system.h>
 #include <cyg/infra/cyg_type.h>
+#include <cyg/infra/cyg_ass.h>
+#include CYGHWR_MEMORY_LAYOUT_H
 
 externC void cyg_hal_isr_init( void );
 externC void cyg_hal_invoke_constructors( void );
 externC void cyg_start( void );
 externC void cyg_hal_hardware_init( void );
+externC void *cyg_hal_sys_brk(void *newbrk);
 
 void _linux_entry( void )
 {
+    void *oldbrk=NULL;
+    void *newbrk=(void *)(CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE);
     // Should get argc argv
     cyg_hal_hardware_init();
     cyg_hal_isr_init();
+    // unconditionally set memory regino to the size specified in the
+    // memory layout
+    oldbrk = cyg_hal_sys_brk(newbrk);
+    // should check 
+    CYG_ASSERT( oldbrk>=newbrk, "brk() failed" );
     cyg_hal_invoke_constructors();
     cyg_start();
 }
--- a/packages/hal/i386/linux/current/src/syscall-i386-linux-1.0.S
+++ b/packages/hal/i386/linux/current/src/syscall-i386-linux-1.0.S
@@ -583,3 +583,7 @@ SYSCALL5(_newselect)
 //==========================================================================
 // machdep_sys_fdatasync()
 SYSCALL1(fdatasync)
+
+//==========================================================================
+// machdep_sys_brk()
+SYSCALL1(brk)
--- a/packages/hal/i386/pc/current/ChangeLog
+++ b/packages/hal/i386/pc/current/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-02  Fabrice Gautier <Fabrice_Gautier@sdesigns.com>
+
+        * src/platform.inc (hal_cpu_init): Load image from floppy one
+        sector at a time to avoid "DMA access across 64k boundary" error.
+
 2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* include/pkgconf/mlt_i386_pc_floppy.mlt:
--- a/packages/hal/i386/pc/current/include/platform.inc
+++ b/packages/hal/i386/pc/current/include/platform.inc
@@ -65,8 +65,7 @@
 
 	sectorsPerTrack = 18
 	bytesPerSector = 512
-	bytesPerTrack = sectorsPerTrack * bytesPerSector
-	dptLength = 3 /* words. */
+	esPerSector = 32	/* = 512/16 */
 
 	cld				/* always count up. */
 
@@ -78,9 +77,9 @@
 	andl 	$0xF000, %eax
 	movw 	%ax, %ss
 
-	/* Ask the BIOS for info about the amount of RAM available.  We push these
-	onto the stack for later use.
-	*/
+	/* Ask the BIOS for info about the amount of RAM available.  We push
+         * these onto the stack for later use.
+	 */
 	
 	xorl 	%eax, %eax
 	movb 	$0x88, %ah		/* Get the amount of extended memory. */
@@ -93,35 +92,63 @@
 	shl	$10, %eax
 	pushl	%eax
 
-
-	/* Read the rest of the image to _start.  This code works by reading a track
-	at a time...
+	/* reset floppy */
+	movb $0,%ah
+	movb $0,%dl
+	int $0x13
+	jc _error
+	
+	/* Read the rest of the image to _start.  This code works by reading
+	   only one sector at a time to avoid "buffer cross 64k boundary" fatal
+	   problem... This is slow but should work in almost all situations.
+	   _start should be aligned on a 512 bytes boundary to be sure.
 	*/
 	
-	movl	$_edata, %eax
-	movl	$_start, %ebx		/* Our destination address. */
-	subl	%ebx, %eax		/* Number of bytes in the image. */
-	movl	$1, %ecx		/* Track/sector to read from (starts at 1). */
+	/* destination pointer es:bx */
+	/* With correct alignement, bx should be 0 and es should be a multiple
+         * of 32. If not it may cause the "buffer cross 64k boundary" problem
+         * (cf above)
+	 */   
+	movl	$_start,%eax
+	movw	%ax,%bx
+	andw	$0xF,%bx
+	shrl	$4,%eax
+	movw	%ax, %es
 
-0:
-	cmpl	$0, %eax
-	jle	1f
+	/* initials head/track/sector */
+	movw	$0,%dx
+	movw	$1,%cx
+	
+	xorl	%edi,%edi
+	jmp	_loadsector
 
-	pushl	%eax			/* Save the number of bytes we want. */
-	pushl	%ebx			/* Save our current address. */
-	pushl	%ecx			/* Save our disk location. */
+_nextsector:
+	addw	$esPerSector, %di	/* advance buffer pointer */
+	shll	$4,%edi
+	cmpl	$_edata,%edi
+	jg	_endload	/* next sector ? */
+	shrl	$4,%edi
+	movw	%di,%es
+	incb	%cl
+        cmpb	$sectorsPerTrack, %cl 
+        jbe	_loadsector	/* next head ?*/
+	movb	$1, %cl
+        incb	%dh    
+        cmpb	$1, %dh
+        je	_loadsector	/* next track ? */
+        movb	$0, %dh
+        incb	%ch    
 
-	/* Read in a track with head 0. */
-	
-	movl	%ebx, %eax		/* Put our address into ES:BX. */
-	shr	$4, %eax
-	movw	%ax, %es
-	andl	$0xF, %ebx
-	movw	$0, %dx			/* Disk 0, head 0 */
-	movb	$0x02, %ah
-	movb	$sectorsPerTrack, %al	/* Read the entire track. */
-	movb	$1, %cl
-	int	$0x13			/* CX points to our track/sector. */
+_loadsector:
+
+	pushw	%es
+	movw	$0x0201, %ax
+	int	$0x13
+	popw	%di
+	jc _error
+
+	movw	$(0x0E*256+'.'), %ax	/* print a dot */
+	int	$0x10
 
 	/* So go ahead and resume execution at the real starting address.  This
 	only serves to move us quickly to the real starting location; and has
@@ -129,52 +156,13 @@ 0:
 	reading the first track, then we limit ourselves to reading images of
 	30k bytes max before overwriting ourselves at 0x7C00.
 	*/
-	
-	ljmp	$0, $2f
-	hlt
 
-	.align 4
-2:
-
-	popl	%ecx
-	popl	%ebx
-	popl	%eax
-
-	/* Add our length to the address. */
-	addl	$bytesPerTrack, %ebx
-	subl	$bytesPerTrack, %eax
-
-	/* Maybe read in a track with head 1. */
-	cmpl	$0, %eax
-	jle	1f
-
-	pushl	%eax			/* Save the number of bytes we want. */
-	pushl	%ebx			/* Save our current address. */
-	pushl	%ecx
+	ljmp $0,$_nextsector	
 
-	movl	%ebx, %eax		/* Put our address into ES:BX. */
-	shr	$4, %eax
-	movw	%ax, %es
-	andl	$0xF, %ebx
-	movw	$0x0100, %dx		/* Disk 0, head 1 */
-	movb	$0x02, %ah
-	movb	$sectorsPerTrack, %al	/* Read the entire track. */
-	movb	$1, %cl
-	int	$0x13			/* CX points to our track/sector. */
-
-	popl	%ecx
-	popl	%ebx
-	popl	%eax
-
-	/* Add our length to the address. */
-	addl	$bytesPerTrack, %ebx
-	subl	$bytesPerTrack, %eax
-
-	/* Move to the next track. */
-	addb	$0x1, %ch
-
-	jmp 0b
-
+_error:		/* halt on error */
+	cli
+	hlt
+	jmp _start
 	/* Write the 0x55/0xAA signature at the end of the first
 	block.  Without this signature the BIOS won't consider this
 	block to be bootable.  
@@ -184,10 +172,11 @@ 2:
 	.byte	0x55
 	.byte	0xAA
 
-
+_endload:
 1:
 
-	/* Lets be nice and wait for the diskette drive motor to go off before continuing. */
+	/* Lets be nice and wait for the diskette drive motor to go off
+         * before continuing. */
 	
 	movw	$0x40, %ax
 	movw	%ax, %es
@@ -250,7 +239,9 @@ gdtStart:
 	.byte	0xCF
 	.byte	0x00
 
-	/* Selector 0x18 == shorter code: faults any code access 0xF0000000-0xFFFFFFFF. */
+	/* Selector 0x18 == shorter code: faults any code 
+         * access 0xF0000000-0xFFFFFFFF.
+         */
 	.word	0xFFFF
 	.word	0x0000
 	.byte	0x00
@@ -292,8 +283,8 @@ 3:
 	popfl
 
 /* Save the standard and extended memory lengths into some static variables...
-	I'm predicting that someone is going to break our way of passing a pointer
-	to this structure...  may as well avoid that problem now.
+	I'm predicting that someone is going to break our way of passing a
+        pointer to this structure...  may as well avoid that problem now.
 */
 	.data
 	.align	4
@@ -312,7 +303,7 @@ pc_extended_memory_size:
 /* _pc_entry() takes a pointer to our startup array (which only has standard
 	and extended memory sizes in it, on the stack).
 */
-	movl	%esp, %ebx		/* They are the last parameters on the stack. */
+	movl	%esp, %ebx	/* They are the last parameters on the stack. */
 	pushl	%ebx
 
 #endif /* CYG_HAL_STARTUP_FLOPPY */
@@ -323,8 +314,9 @@ pc_extended_memory_size:
 	vector 15.
 	*/
 	
-	/* Save the standard and extended memory lengths into some static variables...
-	*/
+	/* Save the standard and extended memory lengths into some static
+         * variables...
+	 */
 	.data
 	.align	4
 	.globl	pc_standard_memory_size
--- a/packages/hal/mips/arch/current/ChangeLog
+++ b/packages/hal/mips/arch/current/ChangeLog
@@ -54,6 +54,7 @@ 2000-09-01  Jonathan Larmour  <jlarmour@
 
         * include/mips-stub.h: Change vr4300 register sizes to use 32-bit
         target_register_t, and tell the generic stub to use sign extension.
+ 	Ditto for tx49
 	* include/hal_cache.h (_HAL_ASM_SET_MIPS_ISA): Don't use pasting
 	when it doesn't result in a preprocessing token. Just use string
 	concatenation.
@@ -144,6 +145,10 @@ 2000-05-15  Jesper Skov  <jskov@redhat.c
 	* src/vectors.S: Allow warm-start to be treated like cold-start if
 	platform requires it.
 
+2000-05-11  Jesper Skov  <jskov@redhat.com>
+
+	* include/mips-stub.h: Added register size for TX49.
+
 2000-05-10  Jesper Skov  <jskov@redhat.com>
 
 	* include/arch.inc: Force assembler into MIPS3 mode before using
--- a/packages/hal/mips/arch/current/include/mips-stub.h
+++ b/packages/hal/mips/arch/current/include/mips-stub.h
@@ -62,6 +62,13 @@ extern "C" {
   typedef unsigned long target_register_t;
   // We need to sign-extend the registers so GDB doesn't get confused.
   #define CYGARC_SIGN_EXTEND_REGISTERS
+#elif defined(CYGPKG_HAL_MIPS_TX49)
+  // Even though we are only working with 32 bit registers, GDB expects 64 bits
+  #define REGSIZE(X) 8
+  typedef unsigned long target_register_t;
+
+  // We need to sign-extend the registers so GDB doesn't get confused.
+  #define CYGARC_SIGN_EXTEND_REGISTERS
 #else
   #define REGSIZE(X) 4
   typedef unsigned long target_register_t;
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/ChangeLog
@@ -0,0 +1,320 @@
+2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.mlt:
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.mlt:
+	Add heap1 section
+
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.h:
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.h:
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi:
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi:
+	Regenerated
+
+2000-09-06  Jesper Skov  <jskov@redhat.com>
+
+	* include/platform.inc: Flush cache after copying vectors.
+
+	* src/plf_misc.c (hal_platform_init): Removed cache-enabling
+	code. This is now done earlier in the variant init code.
+
+2000-07-21  Jesper Skov  <jskov@redhat.com>
+
+	* include/platform.inc: Moved vector copying code to
+	hal_mon_init so it comes after cache initialization.
+
+2000-06-30  Jesper Skov  <jskov@redhat.com>
+
+	* src/pc87338.c: calling i/f macro changes.
+
+	* src/hal_diag.c: Fix warning.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Endian options next to each
+	other.
+
+	* include/platform.inc: Only define hal_memc_setup if it will have
+	a content - otherwise the assembler emits a (harmless) warning.
+
+2000-06-29  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: Changed to match the below.
+
+	* src/pc87338.c: Use per-channel data struct instead of crufty code.
+
+2000-06-28  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: Cleanup.
+
+2000-06-26  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_misc.c: 
+	* src/pc87338.c:
+	* include/plf_intr.h: 
+	Moved Ctrl-c handling to driver file. Added timeout and proper
+	channel changing services.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Removed ROM_DEBUG_CHANNEL option.
+
+2000-06-21  Jonathan Larmour  <jlarmour@redhat.co.uk>
+
+	* misc/slow_cat.tcl: Fix quoting when invoking TCL interpreter
+	* misc/swap4.tcl: Likewise
+
+2000-06-21  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_stub.c: 
+	* src/pc87338.c: [added]
+	* src/pc87338.inl: [deleted]
+	* src/hal_diag.c: 
+	* include/plf_stub.h: 
+	* include/hal_diag.h:
+	* cdl/hal_mips_tx49_ref4955.cdl:
+	Whenever a serial driver is included, use it to service both ports
+	via the vector table, both for diag and stub use. Configurations
+	which rely on the vector table then do not need any serial driver,
+	regardless of which port is configured for use.
+
+2000-06-15  Jesper Skov  <jskov@redhat.com>
+
+	* include/hal_diag.h: Only define HAL_PLF_DIAG functions when
+	required.
+
+	* src/plf_misc.c: Comment fix.
+
+	* src/plf_stub.c: Config option renamed.
+
+	* src/hal_diag.c:
+	* include/hal_diag.h:
+	Use common HAL console wrappers for virtual vector diag.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Added final console/debug comm
+	config options. Cleaned up USE_ROM_MONITOR option.
+
+2000-06-13  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_misc.c (hal_ctrlc_isr): Only return handled when the irq
+	was indeed handled.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Added some virtual vector config
+	variables.
+
+2000-06-09  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: Only use table diag if so configured.
+
+2000-06-08  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_stub.c: init code moved to common HAL.
+
+	* src/plf_misc.c: Moved some code and init responsibilities to
+	common HAL.
+
+	* src/hal_diag.c: Allow use of ROM interface for diag IO.
+
+	* include/plf_stub.h (HAL_STUB_PLATFORM_RESET_ENTRY): defined
+	(mostly for testing, as the board has reset).
+
+	* include/hal_diag.h: Use diag_init to allow for configuration.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Tweaks for
+	CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT. 
+
+2000-06-06  Jonathan Larmour  <jlarmour@redhat.co.uk>
+
+	* misc/slow_cat.tcl: Use more correct runes to restart with tclsh
+	* misc/swap4.tcl: likewise
+
+2000-05-30  Jesper Skov  <jskov@redhat.com>
+
+	* include/plf_intr.h:
+	Handle V320USC sources in mask/unmask/ack macros.
+
+	* src/plf_misc.c:
+	* include/plf_intr.h:
+	Set VSC320 interrupt controller as per spec.	
+
+	* include/plf_stub.h (HAL_STUB_PLATFORM_RESET): Memory access to
+	reset board.
+
+	* src/platform.S: 
+	* src/plf_mk_defs.c:
+	Mask request bits with enable bits on VSC320.
+
+2000-05-26  Jesper Skov  <jskov@redhat.com>
+
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.h: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.mlt: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.h: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.mlt: 
+	Updated MLT files.
+
+2000-05-25  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_misc.c: Set up thread debug ptr.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Include thread support in stub.
+
+2000-05-24  Jesper Skov  <jskov@redhat.com>
+
+	* include/platform.inc: Don't use k0/k1 in init code (not a
+	problem per se, but for consistency).
+
+2000-05-23  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_mk_defs.c:
+	* src/platform.S:
+	* include/plf_intr.h: 
+	* include/platform.inc (hal_intc_translate): Use vectors 0-5 even
+	when chaining is enabled.
+
+	* misc/slow_cat.tcl: Removed the regexp magic. gets handles the
+	conversion.
+
+2000-05-22  Jesper Skov  <jskov@redhat.com>
+
+	* misc/slow_cat.tcl: Comments and minor tweaks.
+
+	* src/platform.S: 
+	* include/platform.inc: 
+	* src/plf_mk_defs.c:
+	* cdl/hal_mips_tx49_ref4955.cdl: 
+	Use mk_defs definitions instead of magic constants.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Generate swapped srec file.
+
+	* src/pc87338.inl:
+	* src/hal_diag.c:
+	Cleanup.
+
+2000-05-18  Jesper Skov  <jskov@redhat.com>
+
+	* include/plf_io.h: Define endian-safe IO macros.
+
+	* src/plf_stub.c:
+	* src/hal_diag.c:
+	Use specified ports.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Change default endianess to
+	big. Add options to control debug/diag ports.
+
+	* src/platform.S: Set V320SC to big-endian mode when required.
+
+2000-05-17  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_stub.c:
+	* src/plf_misc.c:
+	* src/pc87338.inl: 
+	Ctrl-c code uses local stub if available.
+
+	* src/hal_diag.c: Fixed for running under stub.
+
+	* include/plf_intr.h: Fix warnings.
+
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi: 
+	Leave gap for virtual table.
+
+	* src/plf_misc.c: Support ctrl-c.
+
+	* src/platform.S: Springboard code must use mask since sources are
+	set to interrupt when disabled.
+
+	* src/pc87338.inl: Added interrupt definitions and interrupt init.
+
+	* src/plf_stub.c:
+	* include/plf_stub.h: 
+	Platform stub init of virtual vector table.
+
+	* include/plf_intr.h: Added control macros. Only handles on-board
+	interrupt controller, not the V320USC one.
+
+	* include/platform.inc: Use VSR/break springboard.
+
+2000-05-16  Jesper Skov  <jskov@redhat.com>
+
+	* include/platform.inc:
+	Use FPU in 32 bit mode.
+
+2000-05-15  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Require warm-starts to be treated
+	like cold-starts.
+
+	* src/plf_stub.c: 
+	* include/plf_stub.h: 
+	* include/plf_io.h: 
+	* include/hal_diag.h:
+	Cleanup.
+
+	* src/platform.S: Adjust springboard code for the three interrupt
+	controllers.
+	* include/plf_intr.h: Change vectors to match decoding.
+	* include/platform.inc: Cleanup. Enable FPU.
+	* cdl/hal_mips_tx49_ref4955.cdl: Cleanup. Fix incrementer rate.
+
+2000-05-12  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_misc.c (hal_platform_init): Initialize SuperIO chip.
+
+	* src/platform.S: Added magic assembler operand.
+
+	* src/hal_diag.c: Cleaned up.
+
+	* include/platform.inc (hal_memc_init): Added configury.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: Default to GDB_stubs ROM monitor.
+
+2000-05-11  Jesper Skov  <jskov@redhat.com>
+
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi: 
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi: 
+	More space for vectors and VSR table [need to update .h&.ldi]
+	
+	* include/platform.inc: Move memory setup into a function. Fix
+	register typos.
+
+	* include/platform.inc: Re-added the magic debug exception VSR
+	pointers. Copy VSRs to vector space [needs configury].
+
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.h:
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi:
+	* include/pkgconf/mlt_mips_tx49_ref4955_ram.mlt:
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.h:
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi:
+	* include/pkgconf/mlt_mips_tx49_ref4955_rom.mlt:
+	Updated for platform.
+
+	* include/platform.inc: Some definitions added.
+
+	* cdl/hal_mips_tx49_ref4955.cdl: don't move srec image.
+
+2000-05-10  Jesper Skov  <jskov@redhat.com>
+
+	* Cloned from jmr3904. Still stuff to clean out and stuff to add.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/cdl/hal_mips_tx49_ref4955.cdl
@@ -0,0 +1,296 @@
+# ====================================================================
+#
+#      hal_mips_tx49_ref4955.cdl
+#
+#      TX49/REF4955 board HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  bartv
+# Contributors:
+# Date:           2000-05-15
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_MIPS_TX49_REF4955 {
+    display  "REF4955 evaluation board"
+    parent        CYGPKG_HAL_MIPS
+    requires      CYGPKG_HAL_MIPS_TX49
+    define_header hal_mips_tx49_ref4955.h
+    include_dir   cyg/hal
+    description   "
+           The REF4955 HAL package should be used when targetting the
+           actual hardware."
+
+    compile       hal_diag.c platform.S plf_misc.c plf_stub.c pc87338.c
+
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_mips_tx49.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_mips_tx49_ref4955.h>"
+
+        puts $::cdl_header "#define CYGHWR_HAL_MIPS_WARMSTART_COLDSTART"
+    }
+
+    cdl_component CYG_HAL_STARTUP {
+        display       "Startup type"
+        flavor        data
+        legal_values  {"RAM" "ROM"}
+        default_value {"RAM"}
+	no_define
+	define -file system.h CYG_HAL_STARTUP
+        description   "
+           When targetting the REF4955 board it is possible to build
+           the system for either RAM bootstrap or ROM bootstrap. RAM
+           bootstrap generally requires that the board
+           is equipped with ROMs containing a suitable ROM monitor or
+           equivalent software that allows GDB to download the eCos
+           application on to the board. The ROM bootstrap typically
+           requires that the eCos application be blown into EPROMs or
+           equivalent technology."
+    }
+
+    cdl_option CYGHWR_HAL_MIPS_TX49_REF4955_ENDIAN {
+        display "Board endian mode"
+        flavor data
+        legal_values {"big" "little"}
+        default_value {"big"}
+        no_define
+        description "
+            The TX4955 Reference Platform can be used in either big or
+            little endian mode. This option select which. The board
+            will also need to be reconfigured if this option changes."
+    }
+    cdl_option CYGHWR_HAL_MIPS_TX49_REF4955_ENDIAN_SET {
+        display "Communicate endian setting to variant HAL"
+        active_if {CYGHWR_HAL_MIPS_TX49_REF4955_ENDIAN == "big"}
+        calculated 1
+        implements CYGINT_HAL_MIPS_MSBFIRST
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+        display      "Number of communication channels on the board"
+        flavor       data
+        calculated   2
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+        display          "Debug serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+           The REF4955 board has two separate serial ports.  This option
+           chooses which of these ports will be used to connect to a host
+           running GDB."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+        display          "Diagnostic serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+           The REF4955 board has two separate serial ports.  This option
+           chooses which of these ports will be used for diagnostic output."
+    }
+
+    # The "-o file" is a workaround for CR100958 - without it the
+    # output file would end up in the source directory under CygWin.
+    # n.b. grep does not behave itself under win32
+    make -priority 1 {
+        <PREFIX>/include/cyg/hal/plf_defs.inc : <PACKAGE>/src/plf_mk_defs.c
+        $(CC) $(CFLAGS) $(INCLUDE_PATH) -Wp,-MD,plf_defs.tmp -o plf_mk_defs.tmp -S $<
+        fgrep .equ plf_mk_defs.tmp | sed s/#// > $@
+        @echo $@ ": \\" > $(notdir $@).deps
+        @tail +2 plf_defs.tmp >> $(notdir $@).deps
+        @echo >> $(notdir $@).deps
+        @rm plf_defs.tmp plf_mk_defs.tmp
+    }
+
+    # Real-time clock/counter specifics
+    cdl_component CYGNUM_HAL_RTC_CONSTANTS {
+        display       "Real-time clock constants."
+        flavor        none
+    
+        cdl_option CYGNUM_HAL_RTC_NUMERATOR {
+            display       "Real-time clock numerator"
+            flavor        data
+            calculated    1000000000
+        }
+        cdl_option CYGNUM_HAL_RTC_DENOMINATOR {
+            display       "Real-time clock denominator"
+            flavor        data
+            calculated    100
+        }
+        cdl_option CYGNUM_HAL_RTC_PERIOD {
+            display       "Real-time clock period"
+            flavor        data
+            calculated    { 660000 }
+            description   "
+                The count and compare registers of the TX49 are used
+                to drive the eCos kernel RTC. The count register
+                increments at 66MHz on the REF4955."
+        }
+    }
+
+    cdl_component CYGBLD_GLOBAL_OPTIONS {
+        display "Global build options"
+        flavor  none
+        parent  CYGPKG_NONE
+        description   "
+	    Global build options including control over
+	    compiler flags, linker flags and choice of toolchain."
+
+
+        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+            display "Global command prefix"
+            flavor  data
+            no_define
+            default_value { "mips-tx49-elf" }
+            description "
+                This option specifies the command prefix used when
+                invoking the build tools."
+        }
+
+        cdl_option CYGBLD_GLOBAL_CFLAGS {
+            display "Global compiler flags"
+            flavor  data
+            no_define
+            default_value { CYGPKG_HAL_MIPS_MSBFIRST ? "-mips2 -EB -mabi=eabi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : "-mips2 -EL -mabi=eabi -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
+            description   "
+                This option controls the global compiler flags which
+                are used to compile all packages by
+                default. Individual packages may define
+                options which override these global flags."
+        }
+
+        cdl_option CYGBLD_GLOBAL_LDFLAGS {
+            display "Global linker flags"
+            flavor  data
+            no_define
+            default_value { CYGPKG_HAL_MIPS_MSBFIRST ? "-g -mips2 -EB -mabi=eabi -nostdlib -Wl,--gc-sections -Wl,-static" : "-g -mips2 -EL -mabi=eabi -nostdlib -Wl,--gc-sections -Wl,-static" }
+            description   "
+                This option controls the global linker flags. Individual
+                packages may define options which override these global flags."
+        }
+
+        cdl_option CYGBLD_BUILD_GDB_STUBS {
+            display "Build GDB stub ROM image"
+            default_value 0
+            requires { CYG_HAL_STARTUP == "ROM" }
+            requires CYGSEM_HAL_ROM_MONITOR
+            requires CYGBLD_BUILD_COMMON_GDB_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+            requires ! CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
+            requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
+            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
+            no_define
+            description "
+                This option enables the building of the GDB stubs for the
+                board. The common HAL controls takes care of most of the
+                build process, but the final conversion from ELF image to
+                SREC data is handled by the platform CDL, allowing
+                relocation of the data if necessary."
+
+            make -priority 320 {
+                <PREFIX>/bin/gdb_module.srec : <PREFIX>/bin/gdb_module.img
+                $(OBJCOPY) --strip-unneeded -O srec $< pre-swap.srec
+                $(OBJCOPY) --strip-unneeded --change-addresses 0x40400000 $< be-swap.img
+                $(OBJCOPY) -O binary be-swap.img be-swap.bin
+                $(REPOSITORY)/$(PACKAGE)/misc/swap4.tcl be-swap.bin be.bin
+                $(OBJCOPY) --change-address 0xbfc00000 -I binary -O srec be.bin $@
+            }
+        }
+    }
+
+    cdl_component CYGHWR_MEMORY_LAYOUT {
+        display "Memory layout"
+        flavor data
+        no_define
+        calculated { CYG_HAL_STARTUP == "RAM" ? "mips_tx49_ref4955_ram" : \
+                                                "mips_tx49_ref4955_rom" }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+            display "Memory layout linker script fragment"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_mips_tx49_ref4955_ram.ldi>" : \
+                                                    "<pkgconf/mlt_mips_tx49_ref4955_rom.ldi>" }
+        }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_H {
+            display "Memory layout header file"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_H
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_mips_tx49_ref4955_ram.h>" : \
+                                                    "<pkgconf/mlt_mips_tx49_ref4955_rom.h>" }
+        }
+    }
+
+    cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+        display       "Work with a ROM monitor"
+        flavor        booldata
+        legal_values  { "GDB_stubs" }
+        default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      { CYG_HAL_STARTUP == "RAM" }
+        description   "
+            Support can be enabled for GDB stubs.
+            This support changes various eCos semantics such as the encoding
+            of diagnostic output, or the overriding of hardware interrupt
+            vectors.
+            \"GDB_stubs\" provides support when GDB stubs are
+            included in the ROM monitor or boot ROM, allowing debugging
+            via GDB."
+    }
+
+    cdl_option CYGSEM_HAL_ROM_MONITOR {
+        display       "Behave as a ROM monitor"
+        flavor        bool
+        default_value 0
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      { CYG_HAL_STARTUP == "ROM" }
+        description   "
+            Enable this option if this program is to be used as a ROM monitor,
+            i.e. applications will be loaded into RAM on the board, and this
+            ROM monitor may process exceptions or interrupts generated from the
+            application. This enables features such as utilizing a separate
+            interrupt stack when exceptions are generated."
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/hal_diag.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_HAL_DIAG_H
+#define CYGONCE_HAL_HAL_DIAG_H
+
+//=============================================================================
+//
+//      hal_diag.h
+//
+//      HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov, nickg
+// Date:        2000-05-15
+// Purpose:     HAL Support for Kernel Diagnostic Routines
+// Description: Diagnostic routines for use during kernel development.
+// Usage:       #include <cyg/hal/hal_diag.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+
+#include <cyg/hal/hal_if.h>
+
+#define HAL_DIAG_INIT() hal_if_diag_init()
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_if_diag_write_char(_c_)
+#define HAL_DIAG_READ_CHAR(_c_) hal_if_diag_read_char(&_c_)
+
+#else // everything by steam
+
+//-----------------------------------------------------------------------------
+// functions implemented in hal_diag.c
+
+externC void hal_diag_init(void);
+
+externC void hal_diag_write_char(char c);
+
+externC void hal_diag_read_char(char *c);
+
+//-----------------------------------------------------------------------------
+
+#define HAL_DIAG_INIT() hal_diag_init()
+
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_diag_write_char(_c_)
+
+#define HAL_DIAG_READ_CHAR(_c_) hal_diag_read_char(&_c_)
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_HAL_DIAG_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_ram.h
@@ -0,0 +1,37 @@
+// eCos memory layout - Fri Oct 20 06:22:02 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x80000000)
+#define CYGMEM_REGION_ram_SIZE (0x4000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x200)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x100)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_for_rom) [];
+#endif
+#define CYGMEM_SECTION_reserved_for_rom (CYG_LABEL_NAME (__reserved_for_rom))
+#define CYGMEM_SECTION_reserved_for_rom_SIZE (0x7c00)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x84000000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_ram.ldi
@@ -0,0 +1,43 @@
+// eCos memory layout - Fri Oct 20 06:22:02 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x80000000, LENGTH = 0x4000000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x80000000; . = CYG_LABEL_DEFN(__reserved_vectors) + 0x200;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10); . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x100;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10); . = CYG_LABEL_DEFN(__reserved_virtual_table) + 0x100;
+    CYG_LABEL_DEFN(__reserved_for_rom) = ALIGN (0x10); . = CYG_LABEL_DEFN(__reserved_for_rom) + 0x7c00;
+    SECTION_rom_vectors (ram, ALIGN (0x10), LMA_EQ_VMA)
+    SECTION_ROMISC (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_RELOCS (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_init (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_data1 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_eh_frame (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_ctors (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_dtors (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_devtab (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_got (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_dynamic (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_sdata (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_lit8 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_lit4 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_sbss (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_bss (ram, ALIGN (0x8), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_ram.mlt
@@ -0,0 +1,29 @@
+version 0
+region ram 80000000 4000000 0 !
+section reserved_vectors 200 1 0 0 1 1 1 1 80000000 80000000 reserved_vsr_table reserved_vsr_table !
+section reserved_vsr_table 100 10 0 0 0 1 0 1 reserved_virtual_table reserved_virtual_table !
+section reserved_virtual_table 100 10 0 0 0 1 0 1 reserved_for_rom reserved_for_rom !
+section reserved_for_rom 7c00 10 0 0 0 1 0 1 rom_vectors rom_vectors !
+section rom_vectors 0 10 0 1 0 1 0 1 ROMISC ROMISC !
+section ROMISC 0 4 0 1 0 1 0 1 RELOCS RELOCS !
+section RELOCS 0 4 0 1 0 1 0 1 init init !
+section init 0 4 0 1 0 1 0 1 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 1 0 1 data data !
+section data 0 8 0 1 0 1 0 1 data1 data1 !
+section data1 0 8 0 1 0 1 0 1 eh_frame eh_frame !
+section eh_frame 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 4 0 1 0 1 0 1 ctors ctors !
+section ctors 0 4 0 1 0 1 0 1 dtors dtors !
+section dtors 0 4 0 1 0 1 0 1 devtab devtab !
+section devtab 0 4 0 1 0 1 0 1 got got !
+section got 0 4 0 1 0 1 0 1 dynamic dynamic !
+section dynamic 0 4 0 1 0 1 0 1 sdata sdata !
+section sdata 0 4 0 1 0 1 0 1 lit8 lit8 !
+section lit8 0 8 0 1 0 1 0 1 lit4 lit4 !
+section lit4 0 8 0 1 0 1 0 1 sbss sbss !
+section sbss 0 8 0 1 0 1 0 1 bss bss !
+section bss 0 8 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_rom.h
@@ -0,0 +1,35 @@
+// eCos memory layout - Fri Oct 20 06:22:57 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x80000000)
+#define CYGMEM_REGION_ram_SIZE (0x4000000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xbfc00000)
+#define CYGMEM_REGION_rom_SIZE (0x1000000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vectors) [];
+#endif
+#define CYGMEM_SECTION_reserved_vectors (CYG_LABEL_NAME (__reserved_vectors))
+#define CYGMEM_SECTION_reserved_vectors_SIZE (0x200)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_vsr_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_vsr_table (CYG_LABEL_NAME (__reserved_vsr_table))
+#define CYGMEM_SECTION_reserved_vsr_table_SIZE (0x100)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__reserved_virtual_table) [];
+#endif
+#define CYGMEM_SECTION_reserved_virtual_table (CYG_LABEL_NAME (__reserved_virtual_table))
+#define CYGMEM_SECTION_reserved_virtual_table_SIZE (0x100)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x84000000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_rom.ldi
@@ -0,0 +1,43 @@
+// eCos memory layout - Fri Oct 20 06:22:57 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x80000000, LENGTH = 0x4000000
+    rom : ORIGIN = 0xbfc00000, LENGTH = 0x1000000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_rom_vectors (rom, 0xbfc00000, LMA_EQ_VMA)
+    SECTION_ROMISC (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_RELOCS (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_init (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_text (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fini (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__reserved_vectors) = 0x80000000; . = CYG_LABEL_DEFN(__reserved_vectors) + 0x200;
+    CYG_LABEL_DEFN(__reserved_vsr_table) = ALIGN (0x10); . = CYG_LABEL_DEFN(__reserved_vsr_table) + 0x100;
+    CYG_LABEL_DEFN(__reserved_virtual_table) = ALIGN (0x10); . = CYG_LABEL_DEFN(__reserved_virtual_table) + 0x100;
+    SECTION_data (ram, ALIGN (0x10), FOLLOWING (.rodata1))
+    SECTION_data1 (ram, ALIGN (0x8), FOLLOWING (.data))
+    SECTION_eh_frame (ram, ALIGN (0x8), FOLLOWING (.data1))
+    SECTION_gcc_except_table (ram, ALIGN (0x8), FOLLOWING (.eh_frame))
+    SECTION_ctors (ram, ALIGN (0x8), FOLLOWING (.gcc_except_table))
+    SECTION_dtors (ram, ALIGN (0x8), FOLLOWING (.ctors))
+    SECTION_devtab (ram, ALIGN (0x8), FOLLOWING (.dtors))
+    SECTION_got (ram, ALIGN (0x8), FOLLOWING (.devtab))
+    SECTION_dynamic (ram, ALIGN (0x8), FOLLOWING (.got))
+    SECTION_sdata (ram, ALIGN (0x8), FOLLOWING (.dynamic))
+    SECTION_lit8 (ram, ALIGN (0x8), FOLLOWING (.sdata))
+    SECTION_lit4 (ram, ALIGN (0x8), FOLLOWING (.lit8))
+    SECTION_sbss (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_bss (ram, ALIGN (0x8), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/pkgconf/mlt_mips_tx49_ref4955_rom.mlt
@@ -0,0 +1,29 @@
+version 0
+region ram 80000000 4000000 0 !
+region rom bfc00000 1000000 1 !
+section reserved_vectors 200 1 0 0 1 1 1 1 80000000 80000000 reserved_vsr_table reserved_vsr_table !
+section reserved_vsr_table 100 10 0 0 0 1 0 1 reserved_virtual_table reserved_virtual_table !
+section reserved_virtual_table 100 10 0 0 0 1 0 0 data !
+section data 0 10 1 1 0 1 0 1 data1 data1 !
+section data1 0 8 1 1 0 1 0 1 eh_frame eh_frame !
+section eh_frame 0 8 1 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 8 1 1 0 1 0 1 ctors ctors !
+section ctors 0 8 1 1 0 1 0 1 dtors dtors !
+section dtors 0 8 1 1 0 1 0 1 devtab devtab !
+section devtab 0 8 1 1 0 1 0 1 got got !
+section got 0 8 1 1 0 1 0 1 dynamic dynamic !
+section dynamic 0 8 1 1 0 1 0 1 sdata sdata !
+section sdata 0 8 1 1 0 1 0 1 lit8 lit8 !
+section lit8 0 8 1 1 0 1 0 1 lit4 lit4 !
+section lit4 0 8 1 1 0 1 0 0 sbss !
+section sbss 0 8 0 1 0 1 0 1 bss bss !
+section bss 0 8 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section rom_vectors 0 1 0 1 1 1 1 1 bfc00000 bfc00000 ROMISC ROMISC !
+section ROMISC 0 8 0 1 0 1 0 1 RELOCS RELOCS !
+section RELOCS 0 8 0 1 0 1 0 1 init init !
+section init 0 8 0 1 0 1 0 1 text text !
+section text 0 8 0 1 0 1 0 1 fini fini !
+section fini 0 8 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 0 0 1 data !
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/platform.inc
@@ -0,0 +1,234 @@
+#ifndef CYGONCE_HAL_PLATFORM_INC
+#define CYGONCE_HAL_PLATFORM_INC
+##=============================================================================
+##
+##	platform.inc
+##
+##	REF4955/TX4955 board assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	nickg
+## Contributors:nickg,jskov
+## Date:	2000-05-15
+## Purpose:	REF4955/TX4955 board definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the REF4955/TX4955 board.
+## Usage:
+##		#include <cyg/hal/platform.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <cyg/hal/mips.inc>
+#include <cyg/hal/plf_defs.inc>
+
+
+#------------------------------------------------------------------------------
+# Macro for copying vectors to RAM if necessary.
+#if !defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+	.macro	hal_vectors_init
+        # If we don~t play nice with a ROM monitor, copy the required
+        # vectors into the proper location.
+	la	t0,0x80000000		# dest addr
+	la	t1,utlb_vector		# source addr
+	la	t3,utlb_vector_end	# end dest addr
+1:	
+	lw	v0,0(t1)		# get word
+	addi	t1,t1,4
+	sw	v0,0(t0)		# write word
+	addi	t0,t0,4
+	bne	t1,t3,1b
+	 nop
+
+	la	t0,0x80000180		# dest addr
+	la	t1,other_vector		# source addr
+	la	t3,other_vector_end	# end dest addr
+1:	
+	lw	v0,0(t1)		# get word
+	addi	t1,t1,4
+	sw	v0,0(t0)		# write word
+	addi	t0,t0,4
+	bne	t1,t3,1b
+	 nop
+
+        .set mips3                      # Set ISA to MIPS 3 to allow cache insns
+	# Now clear the region in the caches
+	la	t0,0x80000000		# dest addr
+	ori	t1,t0,0x200		# source addr
+1:	cache	0x01,0(t0)	        # Flush word from data cache
+	cache	0x01,1(t0)
+	cache	0x01,2(t0)
+	cache	0x01,3(t0)
+	nop
+	cache	0x00,0(t0)		# Invalidate icache for word
+	cache	0x00,1(t0)
+	cache	0x00,2(t0)
+	cache	0x00,3(t0)
+	nop
+	addi	t0,t0,0x20
+	bne	t0,t1,1b
+	 nop
+        .set mips0                      # reset ISA to default
+
+	.endm
+
+#else
+
+	.macro	hal_vectors_init
+	.endm
+
+#endif
+
+#------------------------------------------------------------------------------
+# Monitor initialization.
+	
+#ifndef CYGPKG_HAL_MIPS_MON_DEFINED
+
+#if	defined(CYG_HAL_STARTUP_ROM) ||			\
+	(	defined(CYG_HAL_STARTUP_RAM) &&		\
+		!defined(CYGSEM_HAL_USE_ROM_MONITOR))
+	
+	# If we are starting up from ROM, or we are starting in
+	# RAM and NOT using a ROM monitor, initialize the VSR table.
+
+	.macro	hal_mon_init
+	hal_vectors_init
+        # Set default exception VSR for all vectors
+        ori     a0,zero,CYGNUM_HAL_VSR_COUNT
+	la	a1,__default_exception_vsr
+	la	a2,hal_vsr_table
+1:      sw      a1,0(a2)
+        addi    a2,a2,4
+        addi    a0,a0,-1
+        bne     a0,zero,1b
+         nop
+
+        # Now set special VSRs
+       	la	a0,hal_vsr_table
+        # Set interrupt VSR
+	la	a1,__default_interrupt_vsr
+        sw      a1,CYGNUM_HAL_VECTOR_INTERRUPT*4(a0)
+        # Add special handler on breakpoint vector to allow GDB and
+        # GCC to both use 'break' without conflicts.
+	la	a1,__break_vsr_springboard
+	sw	a1,CYGNUM_HAL_VECTOR_BREAKPOINT*4(a0)
+        # Set exception handler on special vectors
+        # FIXME: Should use proper definitions
+	la	a1,__default_exception_vsr
+	sw	a1,32*4(a0)             # debug
+	sw	a1,33*4(a0)             # utlb
+	sw	a1,34*4(a0)             # nmi
+	.endm
+	
+#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+	# Initialize the VSR table entries
+	# We only take control of the interrupt vector,
+	# the rest are left to the ROM for now...
+
+	.macro	hal_mon_init
+	hal_vectors_init
+        # Set interrupt VSR
+       	la	a0,hal_vsr_table
+        la	a1,__default_interrupt_vsr
+        sw      a1,CYGNUM_HAL_VECTOR_INTERRUPT*4(a0)
+	.endm
+
+#else
+
+	.macro	hal_mon_init
+	hal_vectors_init
+	.endm
+
+#endif
+
+#define CYGPKG_HAL_MIPS_MON_DEFINED
+#endif	
+
+#------------------------------------------------------------------------------
+
+#if !defined(CYG_HAL_STARTUP_RAM)
+	.macro	hal_memc_init
+        // Only initialize the SDRAM controller when running in ROM
+        .extern hal_memc_setup
+        lar     t0,hal_memc_setup
+        jalr    t0
+        nop
+        .endm
+#define CYGPKG_HAL_MIPS_MEMC_DEFINED        
+#endif
+
+#------------------------------------------------------------------------------
+# Decide whether the VSR table is defined externally, or is to be defined
+# here.
+
+## ISR tables are defined in platform.S
+#define CYG_HAL_MIPS_ISR_TABLES_DEFINED
+
+## VSR table is at a fixed RAM address defined by the linker script
+#define CYG_HAL_MIPS_VSR_TABLE_DEFINED
+
+##-----------------------------------------------------------------------------
+## For chaining, use the calculated cause vector number.
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+	.macro	hal_intc_translate inum,vnum
+	move	\vnum,\inum			# Vector == interrupt number
+	.endm
+#define CYGPKG_HAL_MIPS_INTC_TRANSLATE_DEFINED
+#endif		
+
+##-----------------------------------------------------------------------------
+#ifdef CYG_STARTUP_ROM
+
+## Initial SR value for use in ROM:
+## CP0 usable
+## Vectors in RAM
+## FP registers are 32 bit
+## All hw ints disabled
+#define INITIAL_SR	0x30000000
+
+#else
+
+## Initial SR value for use standalone:
+## CP0 usable
+## Vectors to RAM
+## FP registers are 32 bit
+## All hw ints disabled
+#define INITIAL_SR	0x30000000
+
+#endif                   
+
+#------------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_PLATFORM_INC
+# end of platform.inc
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/plf_cache.h
@@ -0,0 +1,59 @@
+#ifndef CYGONCE_PLF_CACHE_H
+#define CYGONCE_PLF_CACHE_H
+
+//=============================================================================
+//
+//      plf_cache.h
+//
+//      HAL cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   nickg
+// Contributors:        nickg
+// Date:        1998-02-17
+// Purpose:     Cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations.
+// Usage:
+//              #include <cyg/hal/plf_cache.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//=============================================================================
+
+// Nothing here at present.
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_PLF_CACHE_H
+// End of plf_cache.h
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/plf_intr.h
@@ -0,0 +1,302 @@
+#ifndef CYGONCE_HAL_PLF_INTR_H
+#define CYGONCE_HAL_PLF_INTR_H
+
+//==========================================================================
+//
+//      plf_intr.h
+//
+//      REF4955 Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov, nickg
+// Date:         2000-05-09
+// Purpose:      Define Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock for the REF4955 board.
+//              
+// Usage:
+//              #include <cyg/hal/plf_intr.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+
+//--------------------------------------------------------------------------
+// Interrupt vectors.
+
+#ifndef CYGHWR_HAL_INTERRUPT_VECTORS_DEFINED
+
+
+// The first 6 correspond to the interrupt lines in the status/cause regs
+#define CYGNUM_HAL_INTERRUPT_V320USC_INT0       0
+#define CYGNUM_HAL_INTERRUPT_V320USC_INT1       1
+#define CYGNUM_HAL_INTERRUPT_EXT                2
+#define CYGNUM_HAL_INTERRUPT_LAN                3
+#define CYGNUM_HAL_INTERRUPT_IO                 4
+#define CYGNUM_HAL_INTERRUPT_COMPARE            5
+
+
+#if defined(CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN)
+
+// This overlaps with LB_MBI below but it doesn't matter. It's only used
+// by the HAL to access the special chaining entry in the ISR tables.
+// All other attempted access to the ISR table will be redirected to this
+// entry (curtsey of HAL_TRANSLATE_VECTOR). The other vector definitions
+// are still valid, but only for enable/disable/config etc. (i.e., in
+// chaining mode they have associated entries in the ISR tables).
+#define CYGNUM_HAL_INTERRUPT_CHAINING           6
+
+#define HAL_TRANSLATE_VECTOR(_vector_,_index_) \
+    (_index_) = CYGNUM_HAL_INTERRUPT_CHAINING
+
+#endif
+
+
+// The next 32 correspond to the interrupt lines in the V320USC's interrupt
+// controller. These are decoded from the controller when an interrupt
+// enters via CYGNUM_HAL_INTERRUPT_V320USC_INT0.
+#define CYGNUM_HAL_INTERRUPT_INTC_V320USC_base  6 
+#define CYGNUM_HAL_INTERRUPT_LB_MBI             6 
+#define CYGNUM_HAL_INTERRUPT_PCI_MBI            7 
+#define CYGNUM_HAL_INTERRUPT_RESERVED_2         8 
+#define CYGNUM_HAL_INTERRUPT_I2O_OP_NE          9 
+#define CYGNUM_HAL_INTERRUPT_I2O_IF_NF          10
+#define CYGNUM_HAL_INTERRUPT_I2O_IP_NE          11
+#define CYGNUM_HAL_INTERRUPT_I2O_OP_NF          12
+#define CYGNUM_HAL_INTERRUPT_I2O_OF_NE          13
+#define CYGNUM_HAL_INTERRUPT_RESERVED_8         14
+#define CYGNUM_HAL_INTERRUPT_RESERVED_9         15
+#define CYGNUM_HAL_INTERRUPT_RESERVED_10        16
+#define CYGNUM_HAL_INTERRUPT_RESERVED_11        17
+#define CYGNUM_HAL_INTERRUPT_TIMER0             18
+#define CYGNUM_HAL_INTERRUPT_TIMER1             19
+#define CYGNUM_HAL_INTERRUPT_RESERVED_14        20     
+#define CYGNUM_HAL_INTERRUPT_ENUM               21
+#define CYGNUM_HAL_INTERRUPT_DMA0               22
+#define CYGNUM_HAL_INTERRUPT_DMA1               23
+#define CYGNUM_HAL_INTERRUPT_RESERVED_18        24
+#define CYGNUM_HAL_INTERRUPT_RESERVED_19        25
+#define CYGNUM_HAL_INTERRUPT_PWR_STATE          26
+#define CYGNUM_HAL_INTERRUPT_HBI                27
+#define CYGNUM_HAL_INTERRUPT_WDI                28
+#define CYGNUM_HAL_INTERRUPT_BWI                29
+#define CYGNUM_HAL_INTERRUPT_PSLAVE_PI          30
+#define CYGNUM_HAL_INTERRUPT_PMASTER_PI         31
+#define CYGNUM_HAL_INTERRUPT_PCI_T_ABORT        32
+#define CYGNUM_HAL_INTERRUPT_PCI_M_ABORT        33
+#define CYGNUM_HAL_INTERRUPT_DRAM_PI            34
+#define CYGNUM_HAL_INTERRUPT_RESERVED_29        35
+#define CYGNUM_HAL_INTERRUPT_DI0                36
+#define CYGNUM_HAL_INTERRUPT_DI1                37
+
+// The next 6 correspond to the interrupt lines specific to the PCI
+// connector (decoded from CYGNUM_HAL_INTERRUPT_V320USC_INT1)
+#define CYGNUM_HAL_INTERRUPT_INTC_PCI_base      38
+#define CYGNUM_HAL_INTERRUPT_SERR               38
+#define CYGNUM_HAL_INTERRUPT_PERR               39
+#define CYGNUM_HAL_INTERRUPT_INTD               40
+#define CYGNUM_HAL_INTERRUPT_INTC               41
+#define CYGNUM_HAL_INTERRUPT_INTB               42
+#define CYGNUM_HAL_INTERRUPT_INTA               43
+
+// The next 5 correspond to the interrupt lines specific to the REF4955
+// board (decoded from CYGNUM_HAL_INTERRUPT_IO)
+#define CYGNUM_HAL_INTERRUPT_INTC_IO_base       44
+#define CYGNUM_HAL_INTERRUPT_SOFTWARE           44
+#define CYGNUM_HAL_INTERRUPT_INT_SWITCH         45
+#define CYGNUM_HAL_INTERRUPT_PARALLEL           46
+#define CYGNUM_HAL_INTERRUPT_DEBUG_UART         47
+#define CYGNUM_HAL_INTERRUPT_USER_UART          48
+
+
+// Min/Max ISR numbers and how many there are
+#define CYGNUM_HAL_ISR_MIN                     CYGNUM_HAL_INTERRUPT_V320USC_INT0
+#define CYGNUM_HAL_ISR_MAX                     CYGNUM_HAL_INTERRUPT_USER_UART
+#define CYGNUM_HAL_ISR_COUNT                   (CYGNUM_HAL_ISR_MAX - CYGNUM_HAL_ISR_MIN + 1)
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC            CYGNUM_HAL_INTERRUPT_COMPARE
+
+#define CYGHWR_HAL_INTERRUPT_VECTORS_DEFINED
+
+#endif
+
+//--------------------------------------------------------------------------
+// Interrupt controler information
+
+// V320USC 
+#define CYGARC_REG_INT_STAT   0xb80000ec
+
+#define CYGARC_REG_INT_CFG0   0xb80000e0
+#define CYGARC_REG_INT_CFG1   0xb80000e4
+#define CYGARC_REG_INT_CFG2   0xb80000e8
+#define CYGARC_REG_INT_CFG3   0xb8000158
+
+#define CYGARC_REG_INT_CFG_INT0 0x00000100
+#define CYGARC_REG_INT_CFG_INT1 0x00000200
+#define CYGARC_REG_INT_CFG_INT2 0x00000400
+#define CYGARC_REG_INT_CFG_INT3 0x00000800
+
+
+// FPGA
+#define CYGARC_REG_PCI_STAT   0xb5300000
+#define CYGARC_REG_PCI_MASK   0xb5300030
+
+#define CYGARC_REG_IO_STAT    0xb5300010
+#define CYGARC_REG_IO_MASK    0xb5300040
+
+
+#define HAL_INTERRUPT_MASK( _vector_ )                                      \
+    CYG_MACRO_START                                                         \
+    if( (_vector_) <= CYGNUM_HAL_INTERRUPT_COMPARE )                        \
+    {                                                                       \
+        asm volatile (                                                      \
+            "mfc0   $3,$12\n"                                               \
+            "la     $2,0x00000400\n"                                        \
+            "sllv   $2,$2,%0\n"                                             \
+            "nor    $2,$2,$0\n"                                             \
+            "and    $3,$3,$2\n"                                             \
+            "mtc0   $3,$12\n"                                               \
+            "nop; nop; nop\n"                                               \
+            :                                                               \
+            : "r"(_vector_)                                                 \
+            : "$2", "$3"                                                    \
+            );                                                              \
+    }                                                                       \
+    else if ((_vector_) >= CYGNUM_HAL_INTERRUPT_INTC_IO_base)               \
+    {                                                                       \
+        cyg_uint8 _mask_;                                                   \
+        cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_IO_base;  \
+        HAL_READ_UINT8(CYGARC_REG_IO_MASK, _mask_ );                        \
+        _mask_ &= ~(1<<_shift_);                                            \
+        HAL_WRITE_UINT8(CYGARC_REG_IO_MASK, _mask_ );                       \
+    }                                                                       \
+    else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_PCI_base)                \
+    {                                                                       \
+        cyg_uint8 _mask_;                                                   \
+        cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_PCI_base; \
+        HAL_READ_UINT8(CYGARC_REG_PCI_MASK, _mask_ );                       \
+        _mask_ &= ~(1<<_shift_);                                            \
+        HAL_WRITE_UINT8(CYGARC_REG_PCI_MASK, _mask_ );                      \
+    } else { /* V320USC */                                                  \
+        cyg_uint32 _mask_;                                                  \
+        cyg_uint32 _shift_ =                                                \
+            (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_V320USC_base;              \
+        HAL_READ_UINT32(CYGARC_REG_INT_CFG0, _mask_ );                      \
+        _mask_ &= !(1<<_shift_);                                            \
+        HAL_WRITE_UINT32(CYGARC_REG_INT_CFG0, _mask_ );                     \
+    }                                                                       \
+    CYG_MACRO_END
+
+#define HAL_INTERRUPT_UNMASK( _vector_ )                                    \
+    CYG_MACRO_START                                                         \
+    if( (_vector_) <= CYGNUM_HAL_INTERRUPT_COMPARE )                        \
+    {                                                                       \
+        asm volatile (                                                      \
+            "mfc0   $3,$12\n"                                               \
+            "la     $2,0x00000400\n"                                        \
+            "sllv   $2,$2,%0\n"                                             \
+            "or     $3,$3,$2\n"                                             \
+            "mtc0   $3,$12\n"                                               \
+            "nop; nop; nop\n"                                               \
+            :                                                               \
+            : "r"(_vector_)                                                 \
+            : "$2", "$3"                                                    \
+            );                                                              \
+    }                                                                       \
+    else if ((_vector_) >= CYGNUM_HAL_INTERRUPT_INTC_IO_base)               \
+    {                                                                       \
+        cyg_uint8 _mask_;                                                   \
+        cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_IO_base;  \
+        HAL_READ_UINT8(CYGARC_REG_IO_MASK, _mask_ );                        \
+        _mask_ |= (1<<_shift_);                                             \
+        HAL_WRITE_UINT8(CYGARC_REG_IO_MASK, _mask_ );                       \
+    }                                                                       \
+    else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_PCI_base)                \
+    {                                                                       \
+        cyg_uint8 _mask_;                                                   \
+        cyg_uint32 _shift_ = (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_PCI_base; \
+        HAL_READ_UINT8(CYGARC_REG_PCI_MASK, _mask_ );                       \
+        _mask_ |= (1<<_shift_);                                             \
+        HAL_WRITE_UINT8(CYGARC_REG_PCI_MASK, _mask_ );                      \
+    } else { /* V320USC */                                                  \
+        cyg_uint32 _mask_;                                                  \
+        cyg_uint32 _shift_ =                                                \
+            (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_V320USC_base;              \
+        HAL_READ_UINT32(CYGARC_REG_INT_CFG0, _mask_ );                      \
+        _mask_ |= (1<<_shift_);                                             \
+        HAL_WRITE_UINT32(CYGARC_REG_INT_CFG0, _mask_ );                     \
+    }                                                                       \
+    CYG_MACRO_END
+
+#define HAL_INTERRUPT_ACKNOWLEDGE( _vector_ )                           \
+    CYG_MACRO_START                                                     \
+    cyg_uint32 _srvector_ = _vector_;                                   \
+    if ((_vector_) >= CYGNUM_HAL_INTERRUPT_INTC_IO_base) {              \
+        _srvector_ = CYGNUM_HAL_INTERRUPT_IO;                           \
+    } else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_PCI_base) {        \
+        _srvector_ = CYGNUM_HAL_INTERRUPT_V320USC_INT1;                 \
+    } else if (_vector_ >= CYGNUM_HAL_INTERRUPT_INTC_V320USC_base) {    \
+        cyg_uint32 _mask_;                                              \
+        cyg_uint32 _shift_ =                                            \
+            (_vector_)-CYGNUM_HAL_INTERRUPT_INTC_V320USC_base;          \
+        _mask_ = (1<<_shift_);                                          \
+        HAL_WRITE_UINT32(CYGARC_REG_INT_STAT, _mask_ );                 \
+        _srvector_ = CYGNUM_HAL_INTERRUPT_V320USC_INT0;                 \
+    }                                                                   \
+    asm volatile (                                                      \
+        "mfc0   $3,$13\n"                                               \
+        "la     $2,0x00000400\n"                                        \
+        "sllv   $2,$2,%0\n"                                             \
+        "nor    $2,$2,$0\n"                                             \
+        "and    $3,$3,$2\n"                                             \
+        "mtc0   $3,$13\n"                                               \
+        "nop; nop; nop\n"                                               \
+        :                                                               \
+        : "r"(_srvector_)                                               \
+        : "$2", "$3"                                                    \
+        );                                                              \
+    CYG_MACRO_END
+
+#define HAL_INTERRUPT_CONFIGURE( _vector_, _level_, _up_ )
+
+#define HAL_INTERRUPT_SET_LEVEL( _vector_, _level_ )
+
+#define CYGHWR_HAL_INTERRUPT_CONTROLLER_ACCESS_DEFINED
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_PLF_INTR_H
+// End of plf_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/plf_io.h
@@ -0,0 +1,191 @@
+#ifndef CYGONCE_PLF_IO_H
+#define CYGONCE_PLF_IO_H
+
+//=============================================================================
+//
+//      plf_io.h
+//
+//      HAL platform device IO register support.
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   nickg
+// Contributors:nickg, jskov
+// Date:        2000-05-18
+// Purpose:     Define IO register support
+// Description: The macros defined here provide the HAL APIs for handling
+//              device IO control registers.
+//              
+// Usage:
+//              #include <cyg/hal/plf_io.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+//-----------------------------------------------------------------------------
+// BYTE Register access.
+// Individual and vectorized access to 8 bit registers.
+
+// Little-endian version
+#if (CYG_BYTEORDER == CYG_LSBFIRST)
+
+#define HAL_READ_UINT8( _register_, _value_ ) \
+        ((_value_) = *((volatile CYG_BYTE *)(_register_)))
+
+#define HAL_WRITE_UINT8( _register_, _value_ ) \
+        (*((volatile CYG_BYTE *)(_register_)) = (_value_))
+
+#define HAL_READ_UINT8_VECTOR( _register_, _buf_, _count_, _step_ )     \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        (_buf_)[_i_] = ((volatile CYG_BYTE *)(_register_))[_j_];        \
+    CYG_MACRO_END
+
+#define HAL_WRITE_UINT8_VECTOR( _register_, _buf_, _count_, _step_ )    \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        ((volatile CYG_BYTE *)(_register_))[_j_] = (_buf_)[_i_];        \
+    CYG_MACRO_END
+
+#else // Big-endian version
+
+#define HAL_READ_UINT8( _register_, _value_ ) \
+        ((_value_) = *((volatile CYG_BYTE *)((CYG_ADDRWORD)(_register_)^3)))
+
+#define HAL_WRITE_UINT8( _register_, _value_ ) \
+        (*((volatile CYG_BYTE *)((CYG_ADDRWORD)(_register_)^3)) = (_value_))
+
+#define HAL_READ_UINT8_VECTOR( _register_, _buf_, _count_, _step_ )     \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    volatile CYG_BYTE* _r_ = ((CYG_ADDRWORD)(_register_)^3);            \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        (_buf_)[_i_] = _r_[_j_];                                        \
+    CYG_MACRO_END
+
+#define HAL_WRITE_UINT8_VECTOR( _register_, _buf_, _count_, _step_ )    \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    volatile CYG_BYTE* _r_ = ((CYG_ADDRWORD)(_register_)^3);            \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        _r_[_j_] = (_buf_)[_i_];                                        \
+    CYG_MACRO_END
+
+#endif // Big-endian
+
+//-----------------------------------------------------------------------------
+// 16 bit access.
+// Individual and vectorized access to 16 bit registers.
+    
+// Little-endian version
+#if (CYG_BYTEORDER == CYG_LSBFIRST)
+
+#define HAL_READ_UINT16( _register_, _value_ ) \
+        ((_value_) = *((volatile CYG_WORD16 *)(_register_)))
+
+#define HAL_WRITE_UINT16( _register_, _value_ ) \
+        (*((volatile CYG_WORD16 *)(_register_)) = (_value_))
+
+#define HAL_READ_UINT16_VECTOR( _register_, _buf_, _count_, _step_ )    \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        (_buf_)[_i_] = ((volatile CYG_WORD16 *)(_register_))[_j_];      \
+    CYG_MACRO_END
+
+#define HAL_WRITE_UINT16_VECTOR( _register_, _buf_, _count_, _step_ )   \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        ((volatile CYG_WORD16 *)(_register_))[_j_] = (_buf_)[_i_];      \
+    CYG_MACRO_END
+
+#else // Big-endian version
+
+#define HAL_READ_UINT16( _register_, _value_ ) \
+        ((_value_) = *((volatile CYG_WORD16 *)((CYG_ADDRWORD)(_register_)^3)))
+
+#define HAL_WRITE_UINT16( _register_, _value_ ) \
+        (*((volatile CYG_WORD16 *)((CYG_ADDRWORD)(_register_)^3)) = (_value_))
+
+#define HAL_READ_UINT16_VECTOR( _register_, _buf_, _count_, _step_ )    \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    volatile CYG_WORD16* _r_ = ((CYG_ADDRWORD)(_register_)^3);          \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        (_buf_)[_i_] = _r_[_j_];                                        \
+    CYG_MACRO_END
+
+#define HAL_WRITE_UINT16_VECTOR( _register_, _buf_, _count_, _step_ )   \
+    CYG_MACRO_START                                                     \
+    cyg_count32 _i_,_j_;                                                \
+    volatile CYG_WORD16* _r_ = ((CYG_ADDRWORD)(_register_)^3);          \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        _r_[_j_] = (_buf_)[_i_];                                        \
+    CYG_MACRO_END
+
+#endif // Big-endian
+
+//-----------------------------------------------------------------------------
+// 32 bit access.
+// Individual and vectorized access to 32 bit registers.
+
+// Note: same macros for little- and big-endian systems.
+    
+#define HAL_READ_UINT32( _register_, _value_ ) \
+        ((_value_) = *((volatile CYG_WORD32 *)(_register_)))
+
+#define HAL_WRITE_UINT32( _register_, _value_ ) \
+        (*((volatile CYG_WORD32 *)(_register_)) = (_value_))
+
+#define HAL_READ_UINT32_VECTOR( _register_, _buf_, _count_, _step_ )    \
+{                                                                       \
+    cyg_count32 _i_,_j_;                                                \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        (_buf_)[_i_] = ((volatile CYG_WORD32 *)(_register_))[_j_];      \
+}
+
+#define HAL_WRITE_UINT32_VECTOR( _register_, _buf_, _count_, _step_ )   \
+{                                                                       \
+    cyg_count32 _i_,_j_;                                                \
+    for( _i_ = 0, _j_ = 0; _i_ < (_count_); _i_++, _j_ += (_step_))     \
+        ((volatile CYG_WORD32 *)(_register_))[_j_] = (_buf_)[_i_];      \
+}
+
+#define HAL_IO_MACROS_DEFINED
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_PLF_IO_H
+// End of plf_io.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/include/plf_stub.h
@@ -0,0 +1,85 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+//      plf_stub.h
+//
+//      Platform header for GDB stub support.
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-05-15
+// Purpose:     Platform HAL stub support for MIPS/REF4955 boards.
+// Usage:       #include <cyg/hal/plf_stub.h>
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h>         // CYG_UNUSED_PARAM
+
+#include <cyg/hal/mips-stub.h>          // architecture stub support
+
+//----------------------------------------------------------------------------
+// Define some platform specific communication details. This is mostly
+// handled by hal_if now, but we need to make sure the comms tables are
+// properly initialized.
+
+externC void cyg_hal_plf_comms_init(void);
+
+#define HAL_STUB_PLATFORM_INIT_SERIAL()       cyg_hal_plf_comms_init()
+
+#define HAL_STUB_PLATFORM_SET_BAUD_RATE(baud) CYG_UNUSED_PARAM(int, (baud))
+#define HAL_STUB_PLATFORM_INTERRUPTIBLE       0
+#define HAL_STUB_PLATFORM_INIT_BREAK_IRQ()    CYG_EMPTY_STATEMENT
+
+//----------------------------------------------------------------------------
+// Stub initializer.
+extern void hal_plf_stub_init( void );
+#define HAL_STUB_PLATFORM_INIT()              hal_plf_stub_init();
+
+//----------------------------------------------------------------------------
+// Reset.
+#define CYGARC_REG_BOARD_RESET 0xb5400000
+
+#define HAL_STUB_PLATFORM_RESET() HAL_WRITE_UINT8(CYGARC_REG_BOARD_RESET,0)
+
+#define HAL_STUB_PLATFORM_RESET_ENTRY 0xbfc00000
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/misc/slow_cat.tcl
@@ -0,0 +1,25 @@
+#!/bin/sh
+# these lines restart using the tcl shell \
+  exec sh -c "if ( echo | tclsh ) 2>/dev/null ; then \
+      exec tclsh \"${0}\" ${1+${*}} ; \
+    elif ( echo | cygtclsh80 ) 2>/dev/null ; then \
+      exec cygtclsh80 \"${0}\" ${1+${*}} ; \
+    else \
+      echo Could not find TCL interpreter ; \
+      exit 1 ; \
+    fi"
+
+# Can be used like this:
+#  Get flash ready for programming using Minicom or similar
+#   [o (Option menu), a (flAsh menu), b (Boot write)]
+# Then execute the following
+#  slow_cat.tcl < install/bin/gdb_module.srec  >/dev/ttyS0
+
+# Delay lines by 1/10 of a second to allow the flash to recover The
+# gets also strips off the broken (DOS) new-lines that objcopy is
+# generating. The puts replace them with 0x0a which the firmware
+# requires.
+while { 0 <= [gets stdin line] } {
+    puts $line
+    after 100
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/misc/swap4.tcl
@@ -0,0 +1,30 @@
+#!/bin/sh
+# these lines restart using the tcl shell \
+  exec sh -c "if ( echo | tclsh ) 2>/dev/null ; then \
+      exec tclsh \"${0}\" ${1+${*}} ; \
+    elif ( echo | cygtclsh80 ) 2>/dev/null ; then \
+      exec cygtclsh80 \"${0}\" ${1+${*}} ; \
+    else \
+      echo Could not find TCL interpreter ; \
+      exit 1 ; \
+    fi"
+
+proc filter { input_file output_file } {
+    set input_fd [open $input_file  "r"]
+    set output_fd  [open $output_file "w"]
+
+    fconfigure $input_fd  -translation binary
+    fconfigure $output_fd -translation binary
+    while { 1 } {
+	set data [read $input_fd 4]
+	if { [eof $input_fd] } {
+	    break
+	}
+	binary scan $data "i" var
+	puts -nonewline $output_fd [binary format "I" $var]
+    }
+    close $input_fd
+    close $output_fd
+}
+
+filter [lindex $argv 0] [lindex $argv 1]
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/src/hal_diag.c
@@ -0,0 +1,209 @@
+//=============================================================================
+//
+//      hal_diag.c
+//
+//      HAL diagnostic output code
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:nickg, jskov
+// Date:        2000-05-10
+// Purpose:     HAL diagnostic output
+// Description: Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+
+#include <cyg/infra/cyg_type.h>         // base types
+#include <cyg/infra/cyg_trac.h>         // tracing macros
+#include <cyg/infra/cyg_ass.h>          // assertion macros
+
+#include <cyg/hal/hal_arch.h>
+#include <cyg/hal/hal_diag.h>
+
+#include <cyg/hal/hal_intr.h>
+#include <cyg/hal/hal_misc.h>           // Helper functions
+
+#include <cyg/hal/hal_io.h>
+
+#include <cyg/hal/hal_if.h>             // ROM calling interface
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#include <cyg/hal/hal_stub.h>           // CYG_HAL_GDB_x_CRITICAL_IO_REGION
+#endif
+
+externC void cyg_hal_plf_serial_init_channel(void* __ch_data);
+externC void cyg_hal_plf_serial_putc(void* __ch_data, cyg_uint8 __ch);
+externC cyg_uint8 cyg_hal_plf_serial_getc(void* __ch_data);
+
+//-----------------------------------------------------------------------------
+// Hit the hardware directly. Either wrap in GDB O-packets, or write
+// data raw to device.
+
+// Decide when to wrap text output as GDB O-packets
+#if (CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL \
+     == CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL)
+
+#if defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs) \
+    || defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+
+#define CYG_DIAG_GDB
+
+#endif
+
+#endif
+
+//-----------------------------------------------------------------------------
+// There are two serial ports. Hardwire to use one of them.
+#define CYG_DEVICE_SERIAL_SCC1    0xb40003f8 // port 1
+#define CYG_DEVICE_SERIAL_SCC2    0xb40002f8 // port 2
+
+typedef struct {
+    cyg_uint8* base;
+    cyg_int32 msec_timeout;
+    int isr_vector;
+} channel_data_t;
+
+#if (CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL == 0)
+#define BASE ((cyg_uint8*)CYG_DEVICE_SERIAL_SCC1)
+#else
+#define BASE ((cyg_uint8*)CYG_DEVICE_SERIAL_SCC2)
+#endif
+
+static channel_data_t channel = { BASE, 0, 0};
+
+#ifdef CYG_DIAG_GDB
+
+void 
+hal_diag_write_char(char c)
+{
+    static char line[100];
+    static int pos = 0;
+
+    // No need to send CRs
+    if( c == '\r' ) return;
+
+    line[pos++] = c;
+
+    if( c == '\n' || pos == sizeof(line) )
+    {
+        CYG_INTERRUPT_STATE old;
+
+        // Disable interrupts. This prevents GDB trying to interrupt us
+        // while we are in the middle of sending a packet. The serial
+        // receive interrupt will be seen when we re-enable interrupts
+        // later.
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION(old);
+#else
+        HAL_DISABLE_INTERRUPTS(old);
+#endif
+        
+        while(1)
+        {
+            static char hex[] = "0123456789ABCDEF";
+            cyg_uint8 csum = 0;
+            int i;
+            char c1;
+        
+            cyg_hal_plf_serial_putc(&channel, '$');
+            cyg_hal_plf_serial_putc(&channel, 'O');
+            csum += 'O';
+            for( i = 0; i < pos; i++ )
+            {
+                char ch = line[i];
+                char h = hex[(ch>>4)&0xF];
+                char l = hex[ch&0xF];
+                cyg_hal_plf_serial_putc(&channel, h);
+                cyg_hal_plf_serial_putc(&channel, l);
+                csum += h;
+                csum += l;
+            }
+            cyg_hal_plf_serial_putc(&channel, '#');
+            cyg_hal_plf_serial_putc(&channel, hex[(csum>>4)&0xF]);
+            cyg_hal_plf_serial_putc(&channel, hex[csum&0xF]);
+
+            c1 = cyg_hal_plf_serial_getc(&channel);
+
+            if( c1 == '+' ) break;
+        }
+        
+        pos = 0;
+        // And re-enable interrupts
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION(old);
+#else
+        HAL_RESTORE_INTERRUPTS(old);
+#endif
+    }
+}
+
+void 
+hal_diag_read_char(char *c)
+{
+    *c = cyg_hal_plf_serial_getc(&channel);
+}
+
+#else // CYG_DIAG_GDB
+
+// Hit the hardware directly, no GDB translation
+
+void 
+hal_diag_read_char(char *c)
+{
+    *c = cyg_hal_plf_serial_getc(&channel);
+}
+
+void 
+hal_diag_write_char(char c)
+{
+    cyg_hal_plf_serial_putc(&channel, c);
+}
+
+
+#endif
+
+// Reagardless whether encoding or not we alway initialize the device.
+
+void 
+hal_diag_init(void)
+{
+    // Init serial device
+    cyg_hal_plf_serial_init_channel((void*)&channel);
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/src/pc87338.c
@@ -0,0 +1,413 @@
+#ifndef CYGONCE_HAL_PC_SER_H
+#define CYGONCE_HAL_PC_SER_H
+//=============================================================================
+//
+//      pc87338.c
+//
+//      Simple driver for the serial controllers in the PC87338 SuperIO chip
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-06-20
+// Description: Simple driver for the PC87338 serial controllers
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_arch.h>           // SAVE/RESTORE GP macros
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/hal_if.h>             // interface API
+#include <cyg/hal/hal_intr.h>           // HAL_ENABLE/MASK/UNMASK_INTERRUPTS
+#include <cyg/hal/hal_misc.h>           // Helper functions
+#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
+
+//-----------------------------------------------------------------------------
+// Controller definitions.
+
+//-----------------------------------------------------------------------------
+// There are two serial ports.
+#define CYG_DEVICE_SERIAL_SCC1    0xb40003f8 // port 1
+#define CYG_DEVICE_SERIAL_SCC2    0xb40002f8 // port 2
+
+//-----------------------------------------------------------------------------
+// Serial registers (shared by all banks)
+#define CYG_DEVICE_BSR       (0x03)
+#define CYG_DEVICE_LCR       (0x03)
+
+#define CYG_DEVICE_BSR_BANK0 0x00
+#define CYG_DEVICE_BSR_BANK2 0xe0
+
+#define CYG_DEVICE_LCR_LEN_5BIT       0x00
+#define CYG_DEVICE_LCR_LEN_6BIT       0x01
+#define CYG_DEVICE_LCR_LEN_7BIT       0x02
+#define CYG_DEVICE_LCR_LEN_8BIT       0x03
+#define CYG_DEVICE_LCR_STOP_1         0x00
+#define CYG_DEVICE_LCR_STOP_2         0x04
+#define CYG_DEVICE_LCR_PARITY_NONE    0x00
+#define CYG_DEVICE_LCR_PARITY_ODD     0x08
+#define CYG_DEVICE_LCR_PARITY_EVEN    0x18
+#define CYG_DEVICE_LCR_PARITY_LOGIC1  0x28
+#define CYG_DEVICE_LCR_PARITY_LOGIC0  0x38
+#define CYG_DEVICE_LCR_SBRK           0x40
+
+// Bank 0 (control/status)
+#define CYG_DEVICE_BK0_TXD   (0x00)
+#define CYG_DEVICE_BK0_RXD   (0x00)
+#define CYG_DEVICE_BK0_IER   (0x01)
+#define CYG_DEVICE_BK0_EIR   (0x02)
+#define CYG_DEVICE_BK0_FCR   (0x02)
+#define CYG_DEVICE_BK0_MCR   (0x04)
+#define CYG_DEVICE_BK0_LSR   (0x05)
+#define CYG_DEVICE_BK0_MSR   (0x06)
+#define CYG_DEVICE_BK0_SPR   (0x07)
+#define CYG_DEVICE_BK0_ASCR  (0x07)
+
+#define CYG_DEVICE_BK0_LSR_RXDA       0x01
+#define CYG_DEVICE_BK0_LSR_OE         0x02
+#define CYG_DEVICE_BK0_LSR_PE         0x04
+#define CYG_DEVICE_BK0_LSR_FE         0x08
+#define CYG_DEVICE_BK0_LSR_BRK        0x10
+#define CYG_DEVICE_BK0_LSR_TXRDY      0x20
+#define CYG_DEVICE_BK0_LSR_TXEMP      0x40
+#define CYG_DEVICE_BK0_LSR_ER_INF     0x80
+
+#define CYG_DEVICE_BK0_IER_TMR_IE     0x80
+#define CYG_DEVICE_BK0_IER_SFIF_IE    0x40
+#define CYG_DEVICE_BK0_IER_TXEMP_IE   0x20
+#define CYG_DEVICE_BK0_IER_DMA_IE     0x10
+#define CYG_DEVICE_BK0_IER_MS_IE      0x08
+#define CYG_DEVICE_BK0_IER_LS_IE      0x04
+#define CYG_DEVICE_BK0_IER_TXLDL_IE   0x02
+#define CYG_DEVICE_BK0_IER_RXHDL_IE   0x01
+
+#define CYG_DEVICE_BK0_EIR_FEN1       0x80
+#define CYG_DEVICE_BK0_EIR_FEN0       0x40
+#define CYG_DEVICE_BK0_EIR_RXFT       0x08
+#define CYG_DEVICE_BK0_EIR_IPR1       0x04
+#define CYG_DEVICE_BK0_EIR_IPR0       0x02
+#define CYG_DEVICE_BK0_EIR_IPF        0x01
+
+#define CYG_DEVICE_BK0_EIR_mask       0x07
+#define CYG_DEVICE_BK0_EIR_IRQ_ERR    0x06
+#define CYG_DEVICE_BK0_EIR_IRQ_RX     0x04
+#define CYG_DEVICE_BK0_EIR_IRQ_TX     0x02
+
+#define CYG_DEVICE_BK0_MCR_ISEN       0x08 // interrupt signal enable
+
+
+// Bank 2 (baud generator)
+#define CYG_DEVICE_BK2_BGDL  (0x00)
+#define CYG_DEVICE_BK2_BGDH  (0x01)
+#define CYG_DEVICE_BK2_EXCR1 (0x02)
+#define CYG_DEVICE_BK2_EXCR2 (0x04)
+#define CYG_DEVICE_BK2_TXFLV (0x06)
+#define CYG_DEVICE_BK2_RXFLV (0x07)
+
+
+//-----------------------------------------------------------------------------
+typedef struct {
+    cyg_uint8* base;
+    cyg_int32 msec_timeout;
+    int isr_vector;
+} channel_data_t;
+
+//-----------------------------------------------------------------------------
+// The minimal init, get and put functions. All by polling.
+
+void
+cyg_hal_plf_serial_init_channel(void* __ch_data)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint8 lcr;
+
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BSR, CYG_DEVICE_BSR_BANK0);
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BK0_IER, 0);
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BK0_MCR, CYG_DEVICE_BK0_MCR_ISEN);
+
+    // Disable FIFOs
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BK0_FCR, 0);
+
+    // 8-1-no parity.
+    HAL_WRITE_UINT8(base+CYG_DEVICE_LCR,
+                    CYG_DEVICE_LCR_LEN_8BIT | CYG_DEVICE_LCR_STOP_1 | CYG_DEVICE_LCR_PARITY_NONE);
+
+    // Set speed to 38400 (switch bank, remember old LCR setting)
+    HAL_READ_UINT8(base+CYG_DEVICE_LCR, lcr);
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BSR, CYG_DEVICE_BSR_BANK2);
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BK2_BGDL, 3);
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BK2_BGDH, 0);
+    HAL_WRITE_UINT8(base+CYG_DEVICE_LCR, lcr);
+}
+
+void
+cyg_hal_plf_serial_putc(void* __ch_data, cyg_uint8 __ch)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint8 lsr;
+    CYGARC_HAL_SAVE_GP();
+
+    do {
+        HAL_READ_UINT8(base+CYG_DEVICE_BK0_LSR, lsr);
+    } while ((lsr & CYG_DEVICE_BK0_LSR_TXRDY) == 0);
+
+    HAL_WRITE_UINT8(base+CYG_DEVICE_BK0_TXD, __ch);
+
+    // Hang around until the character has been safely sent.
+    do {
+        HAL_READ_UINT8(base+CYG_DEVICE_BK0_LSR, lsr);
+    } while ((lsr & CYG_DEVICE_BK0_LSR_TXRDY) == 0);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+static cyg_bool
+cyg_hal_plf_serial_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint8 lsr;
+
+    HAL_READ_UINT8(base+CYG_DEVICE_BK0_LSR, lsr);
+    if ((lsr & CYG_DEVICE_BK0_LSR_RXDA) == 0)
+        return false;
+
+    HAL_READ_UINT8 (base+CYG_DEVICE_BK0_RXD, *ch);
+
+    return true;
+}
+
+cyg_uint8
+cyg_hal_plf_serial_getc(void* __ch_data)
+{
+    cyg_uint8 ch;
+    CYGARC_HAL_SAVE_GP();
+
+    while(!cyg_hal_plf_serial_getc_nonblock(__ch_data, &ch));
+
+    CYGARC_HAL_RESTORE_GP();
+    return ch;
+}
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
+    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
+
+static const channel_data_t channels[2] = {
+    { (cyg_uint8*)CYG_DEVICE_SERIAL_SCC1, 1000, CYGNUM_HAL_INTERRUPT_DEBUG_UART},
+    { (cyg_uint8*)CYG_DEVICE_SERIAL_SCC2, 1000, CYGNUM_HAL_INTERRUPT_USER_UART}
+};
+
+static void
+cyg_hal_plf_serial_write(void* __ch_data, const cyg_uint8* __buf, 
+                         cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        cyg_hal_plf_serial_putc(__ch_data, *__buf++);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+static void
+cyg_hal_plf_serial_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        *__buf++ = cyg_hal_plf_serial_getc(__ch_data);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+
+cyg_bool
+cyg_hal_plf_serial_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+    int delay_count;
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    cyg_bool res;
+    CYGARC_HAL_SAVE_GP();
+
+    delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
+
+    for(;;) {
+        res = cyg_hal_plf_serial_getc_nonblock(__ch_data, ch);
+        if (res || 0 == delay_count--)
+            break;
+        
+        CYGACC_CALL_IF_DELAY_US(100);
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+static int
+cyg_hal_plf_serial_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+    static int irq_state = 0;
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    cyg_uint8 ier;
+    int ret = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    switch (__func) {
+    case __COMMCTL_IRQ_ENABLE:
+        irq_state = 1;
+
+        HAL_READ_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);
+        ier |= CYG_DEVICE_BK0_IER_RXHDL_IE;
+        HAL_WRITE_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);
+
+        HAL_INTERRUPT_SET_LEVEL(chan->isr_vector, 1);
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        break;
+    case __COMMCTL_IRQ_DISABLE:
+        ret = irq_state;
+        irq_state = 0;
+
+        HAL_READ_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);
+        ier &= ~CYG_DEVICE_BK0_IER_RXHDL_IE;
+        HAL_WRITE_UINT8(chan->base+CYG_DEVICE_BK0_IER, ier);
+
+        HAL_INTERRUPT_MASK(chan->isr_vector);
+        break;
+    case __COMMCTL_DBG_ISR_VECTOR:
+        ret = chan->isr_vector;
+        break;
+    case __COMMCTL_SET_TIMEOUT:
+    {
+        va_list ap;
+
+        va_start(ap, __func);
+
+        ret = chan->msec_timeout;
+        chan->msec_timeout = va_arg(ap, cyg_uint32);
+
+        va_end(ap);
+    }        
+    default:
+        break;
+    }
+    CYGARC_HAL_RESTORE_GP();
+    return ret;
+}
+
+static int
+cyg_hal_plf_serial_isr(void *__ch_data, int* __ctrlc, 
+                       CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+    int res = 0;
+    cyg_uint8 eir, c;
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    CYGARC_HAL_SAVE_GP();
+
+    HAL_INTERRUPT_ACKNOWLEDGE(chan->isr_vector);
+
+    HAL_READ_UINT8(chan->base+CYG_DEVICE_BK0_EIR, eir);
+
+    *__ctrlc = 0;
+    if( (eir & CYG_DEVICE_BK0_EIR_mask) == CYG_DEVICE_BK0_EIR_IRQ_RX ) {
+
+        HAL_READ_UINT8(chan->base+CYG_DEVICE_BK0_RXD, c);
+    
+        if( cyg_hal_is_break( &c , 1 ) )
+            *__ctrlc = 1;
+
+        res = CYG_ISR_HANDLED;
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+static void
+cyg_hal_plf_serial_init(void)
+{
+    hal_virtual_comm_table_t* comm;
+    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+    // Disable interrupts.
+    HAL_INTERRUPT_MASK(channels[0].isr_vector);
+    HAL_INTERRUPT_MASK(channels[1].isr_vector);
+
+    // Init channels
+    cyg_hal_plf_serial_init_channel((void*)&channels[0]);
+    cyg_hal_plf_serial_init_channel((void*)&channels[1]);
+    
+    // Setup procs in the vector table
+
+    // Set channel 0
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(0);
+    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+    CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[0]);
+    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);
+    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);
+    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);
+    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);
+    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);
+    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);
+    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);
+
+    // Set channel 1
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(1);
+    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+    CYGACC_COMM_IF_CH_DATA_SET(*comm, &channels[1]);
+    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write);
+    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read);
+    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc);
+    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc);
+    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control);
+    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr);
+    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout);
+     
+    // Restore original console
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+void
+cyg_hal_plf_comms_init(void)
+{
+    static int initialized = 0;
+
+    if (initialized)
+        return;
+
+    initialized = 1;
+
+    cyg_hal_plf_serial_init();
+}
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+//-----------------------------------------------------------------------------
+// end of pc87338.c
+#endif // CYGONCE_HAL_PC_SER_INL
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/src/platform.S
@@ -0,0 +1,338 @@
+##=============================================================================
+##
+##      platform.S
+##
+##      MIPS REF4955-TX4955 platform code
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):   nickg
+## Contributors:nickg, jskov
+## Date:        2000-05-09
+## Purpose:     MIPS REF4955-TX4955 platform code
+## Description: Platform specific code for REF4955-TX4955 board.
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+         .set    noreorder
+
+#include <pkgconf/system.h>     
+#include <pkgconf/hal.h>
+
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h>    
+#endif
+                        
+#include <cyg/hal/arch.inc>     
+#include <cyg/hal/plf_defs.inc>     
+
+##-----------------------------------------------------------------------------
+## ISR springboard.
+## This routine decodes the interrupt from the various interrupt controllers
+## and vectors to it.
+
+        # On entry:
+        # a0 = MIPS status register interrupt number (1,2 or 3)
+        # a1 = ISR data value (= interrupt controller reg address)
+        # a2 = saved reg dump ptr
+        # s0 = saved reg dump ptr
+        # s1 = vector table offset
+        # s2 = interrupt number
+        # a3,v0,v1 etc available for use
+
+        .text
+        
+FUNC_START(hal_isr_springboard_pci)
+        lbu     v0,0(a1)
+        nor     v0,v0,v0
+        la      a1,CYGARC_REG_PCI_MASK
+        lbu     a2,0(a1)
+        and     v0,v0,a2
+        addi    a2,$0,CYGNUM_HAL_INTERRUPT_INTC_PCI_base
+        b       hal_isr_springboard
+         nop
+FUNC_END(hal_isr_springboard_pci)
+        
+FUNC_START(hal_isr_springboard_io)
+        lbu     v0,0(a1)
+        nor     v0,v0,v0
+        la      a1,CYGARC_REG_IO_MASK
+        lbu     a2,0(a1)
+        and     v0,v0,a2
+        addi    a2,$0,CYGNUM_HAL_INTERRUPT_INTC_IO_base
+        b       hal_isr_springboard
+         nop
+FUNC_END(hal_isr_springboard_io)
+        
+hal_isr_springboard_v320usc:
+        lw      v0,0(a1)
+        la      a1,CYGARC_REG_INT_CFG0
+        lw      v1,0(a1)
+        lw      a2,4(a1)                # CFG1
+        or      v1,v1,a2
+        lw      a2,8(a1)                # CFG2
+        or      v1,v1,a2
+        la      a1,CYGARC_REG_INT_CFG3
+        lw      a2,0(a1)
+        or      v1,v1,a2
+        and     v0,v0,v1
+        addi    a2,$0,CYGNUM_HAL_INTERRUPT_INTC_V320USC_base
+        
+FUNC_START(hal_isr_springboard)
+                
+        # The following code implements an ls bit index algorithm similar
+        # to that in hal_lsbit_index() in hal_misc.c. 
+        negu    v1,v0                           # v1 = -v0
+        and     v1,v1,v0                        # v1 &= v0 [isolate ls bit]
+        sll     v0,v1,16                        # v0 = v1<<16
+        subu    v1,v0,v1                        # v1 = v0 - v1
+        sll     a0,v1,6                         # a0 = v1<<6
+        addu    v1,v1,a0                        # v1 += a0
+        sll     a1,v1,4                         # a1 = v1<<4
+        addu    v1,v1,a1                        # v1 += a1
+        la      v0,hal_isr_springboard_table    # v0 = table address
+        srl     v1,v1,26                        # v1 = v1>>26
+        addu    v1,v1,v0                        # v1 = table entry address
+        lb      a0,0(v1)                        # a0 = intc isr number
+        
+        add     s2,a0,a2                        # s2 = eCos isr number
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+hal_isr_springboard_chaining:
+        # This serves as the __default_interrupt_isr entry-point in
+        # chaning mode, thus ensuring that all interrupts from
+        # vectors 0-5 eventually end up on the special CHAINING vector.
+        # (See the hal_interrupt_handlers table)
+        ori     s1,zero,CYGNUM_HAL_INTERRUPT_CHAINING*4 # s1 = chaining isr ix
+#else
+        sll     s1,s2,2                         # s1 = isr table index
+#endif
+
+        la      v1,hal_interrupt_handlers
+        add     v1,v1,s1                        # v1 = isr handler address
+        lw      v1,0(v1)                        # v1 = isr handler
+
+        la      a1,hal_interrupt_data
+        add     a1,a1,s1                        # a1 = address of data ptr
+        lw      a1,0(a1)                        # a1 = data pointer
+
+        move    a0,s2                           # pass interrupt number 
+
+        jr      v1                              # jump to handler, return is to
+                                                # default vsr already in ra
+        nop
+
+FUNC_END(hal_isr_springboard)
+
+       
+hal_isr_springboard_table:      
+        .byte  -1,  0,  1, 12,  2,  6,  0, 13
+        .byte   3,  0,  7,  0,  0,  0,  0, 14
+        .byte  10,  4,  0,  0,  8,  0,  0, 25
+        .byte   0,  0,  0,  0,  0, 21, 27, 15
+        .byte  31, 11,  5,  0,  0,  0,  0,  0
+        .byte   9,  0,  0, 24,  0,  0, 20, 26
+        .byte  30,  0,  0,  0,  0, 23,  0, 19
+        .byte  29,  0, 22, 18, 28, 17, 16,  0
+
+        
+##-----------------------------------------------------------------------------
+## MEMC initialization.
+## This also initializes the PCI bus and ISA bus bridge, so at the end of this
+## we should have full access to all the memory and devices we need.
+## This code is table driven, which is somewhat more compact that coding it all.
+## Table entries consist of an address and a value to store in that address.
+## A zero address terminates the table. Two special address values modify the
+## behaviour:   
+## DELAY_LOOP   loops for the number of iterations in the value field.
+## WRITE16      treats the next 2 words as an address and value to be written 
+##              with a 16 bit write cycle.
+        
+#if !defined(CYG_HAL_STARTUP_RAM)
+        
+#define DELAY_LOOP      1
+#define WRITE16         2       
+
+FUNC_START(hal_memc_setup)
+
+        lar     t0,hal_memc_setup_table
+        la      t1,0xbfc00000
+        la      t2,DELAY_LOOP
+        la      t3,WRITE16
+1:      
+        lw      a0,0(t0)        # next table entry
+        lw      a1,4(t0)        # value to write
+        addiu   t0,8            # go to next entry
+        beq     a0,t2,2f        # Check for delay
+        nop
+        beq     a0,t3,3f        # Check for 16 bit write
+        nop
+        beqz    a0,9f           # zero terminates loop
+        nop
+        sw      a1,0(a0)        # write it
+        lw      zero,0(t1)      # uncached read to flush write buffer
+        b       1b
+        nop
+2:
+        lw      zero,0(t1)      # uncached read to flush write buffer   
+        bnez    a1,2b           # count down by value in a1
+        addiu   a1,-1           # decrement in delay slot
+        b       1b              # go back to loop
+        nop
+3:      
+        lw      a3,0(t0)        # get next word
+        addiu   t0,4            # skip it
+        sh      a3,0(a1)        # store halfword        
+        lw      zero,0(t1)      # uncached read to flush write buffer
+        b       1b
+        nop
+9:
+        jr      ra
+        nop
+
+FUNC_END(hal_memc_setup)        
+
+        
+##-----------------------------------------------------------------------------
+## The initialization table
+
+#define USC_LB_BUS_CFG    0xb800007c
+#define USC_SDRAM_MA_CMD  0xb8000088
+        
+hal_memc_setup_table:
+
+        .long   DELAY_LOOP,       10000 # Wait for HW to settle
+
+#ifdef CYGPKG_HAL_MIPS_MSBFIRST
+        # V320SC : big-endian, max bus watch timer
+        .long   USC_LB_BUS_CFG, 0x04010ff0
+#else
+        .long   USC_LB_BUS_CFG, 0x04000ff0
+#endif        
+        .long   USC_SDRAM_MA_CMD, 0x00a70000
+        .long   USC_SDRAM_MA_CMD, 0x00e70220
+
+        .long   0, 0
+                
+#endif // !CYG_HAL_STARTUP_RAM
+        
+##-----------------------------------------------------------------------------
+## ISR tables.
+                        
+        .extern hal_default_isr
+        
+        .data
+
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+        .globl  hal_interrupt_handlers
+hal_interrupt_handlers:
+        # These first 6 vectors all go through a springboard for further
+        # interrupt controller vector decoding before ending up on the
+        # special chaining vector below.
+        .long   hal_isr_springboard_v320usc
+        .long   hal_isr_springboard_pci
+        .long   hal_isr_springboard_chaining
+        .long   hal_isr_springboard_chaining
+        .long   hal_isr_springboard_io
+        .long   hal_isr_springboard_chaining
+
+        .long   hal_default_isr         # chaining vector
+        
+        .globl  hal_interrupt_data
+hal_interrupt_data:
+        .long   CYGARC_REG_INT_STAT
+        .long   CYGARC_REG_PCI_STAT
+        .long   0
+        .long   0
+        .long   CYGARC_REG_IO_STAT
+        .long   0
+
+        .long   0                       # chaining vector data
+
+        .globl  hal_interrupt_objects
+hal_interrupt_objects:
+        .long   0
+        .long   0
+        .long   0
+        .long   0
+        .long   0
+        .long   0
+
+        .long   0                       # chaining vector object
+
+        .globl  cyg_hal_interrupt_level
+cyg_hal_interrupt_level:
+        .rept   CYGNUM_HAL_ISR_COUNT
+        .byte   0
+        .endr
+
+#else // CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+        
+        .globl  hal_interrupt_handlers
+hal_interrupt_handlers:
+        .long   hal_isr_springboard_v320usc
+        .long   hal_isr_springboard_pci
+        .long   hal_default_isr
+        .long   hal_default_isr
+        .long   hal_isr_springboard_io
+        .long   hal_default_isr
+
+        .rept   CYGNUM_HAL_ISR_COUNT-6
+        .long   hal_default_isr
+        .endr
+        
+        .globl  hal_interrupt_data
+hal_interrupt_data:
+        .long   CYGARC_REG_INT_STAT
+        .long   CYGARC_REG_PCI_STAT
+        .long   0
+        .long   0
+        .long   CYGARC_REG_IO_STAT
+        .long   0
+
+        .rept   CYGNUM_HAL_ISR_COUNT-6
+        .long   0
+        .endr
+
+        .globl  hal_interrupt_objects
+hal_interrupt_objects:
+        .rept   CYGNUM_HAL_ISR_COUNT
+        .long   0
+        .endr
+
+        .globl  cyg_hal_interrupt_level
+cyg_hal_interrupt_level:
+        .rept   CYGNUM_HAL_ISR_COUNT
+        .byte   0
+        .endr
+
+#endif // CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+
+##-----------------------------------------------------------------------------
+## end of platform.S
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/src/plf_misc.c
@@ -0,0 +1,114 @@
+//==========================================================================
+//
+//      plf_misc.c
+//
+//      HAL platform miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    nickg
+// Contributors: nickg, jlarmour, jskov
+// Date:         2000-05-15
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>         // Base types
+#include <cyg/infra/cyg_trac.h>         // tracing macros
+#include <cyg/infra/cyg_ass.h>          // assertion macros
+
+#include <cyg/hal/hal_arch.h>           // architectural definitions
+
+#include <cyg/hal/hal_intr.h>           // Interrupt handling
+
+#include <cyg/hal/hal_cache.h>          // Cache handling
+#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
+
+#include <cyg/hal/hal_if.h>             // Calling interface definitions
+#include <cyg/hal/hal_misc.h>           // Helper functions
+
+//--------------------------------------------------------------------------
+
+#define CYGARC_REG_SUPERIO_IREG     0xb4000398
+#define CYGARC_REG_SUPERIO_DREG     0xb4000399
+
+#define CYGARC_REG_SUPERIO_FER      0x00 // function enable
+#define CYGARC_REG_SUPERIO_FAR      0x01 // function address
+#define CYGARC_REG_SUPERIO_PTR      0x02 // power and test
+#define CYGARC_REG_SUPERIO_CLK      0x51 // clock controller
+
+
+#define CYGARC_REG_SUPERIO_FER_PAR  0x01
+#define CYGARC_REG_SUPERIO_FER_SCC1 0x02
+#define CYGARC_REG_SUPERIO_FER_SCC2 0x04
+
+#define CYGARC_REG_SUPERIO_CLK_14M  0x00 // 14MHz source
+#define CYGARC_REG_SUPERIO_CLK_CME  0x04 // clock multiplier enabled
+
+#define CYGARC_REG_SUPERIO_PTR_PPEXT 0x80 // extended
+
+
+
+
+static void write_super_io(cyg_uint8 offset, cyg_uint8 data)
+{
+    HAL_WRITE_UINT8(CYGARC_REG_SUPERIO_IREG, offset);
+    HAL_WRITE_UINT8(CYGARC_REG_SUPERIO_DREG, data);
+    HAL_WRITE_UINT8(CYGARC_REG_SUPERIO_DREG, data);
+}
+
+void hal_platform_init(void)
+{
+    hal_if_init();
+
+    // Configure the SuperIO chip
+    write_super_io(CYGARC_REG_SUPERIO_FER, 
+                   CYGARC_REG_SUPERIO_FER_SCC1|CYGARC_REG_SUPERIO_FER_SCC2);
+    write_super_io(CYGARC_REG_SUPERIO_FAR, 0x10);
+    write_super_io(CYGARC_REG_SUPERIO_CLK, 
+                   CYGARC_REG_SUPERIO_CLK_14M|CYGARC_REG_SUPERIO_CLK_CME);
+
+    // Set up VSC320 interrupt controller. INT1 must merge INT2 and
+    // INT3 according to the platform specification.
+    HAL_WRITE_UINT32(CYGARC_REG_INT_CFG1,
+                     CYGARC_REG_INT_CFG_INT2|CYGARC_REG_INT_CFG_INT3);
+
+    // Unmask vectors which are entry points for interrupt controllers
+    HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_V320USC_INT0);
+    HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_V320USC_INT1);
+    HAL_INTERRUPT_UNMASK(CYGNUM_HAL_INTERRUPT_IO);
+}
+
+//--------------------------------------------------------------------------
+// End of plf_misc.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/src/plf_mk_defs.c
@@ -0,0 +1,97 @@
+//==========================================================================
+//
+//      plf_mk_defs.c
+//
+//      HAL (platform) "make defs" program
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, jskov
+// Date:         2000-05-11
+// Purpose:      Platform dependent definition generator
+// Description:  This file contains code that can be compiled by the target
+//               compiler and used to generate machine specific definitions
+//               suitable for use in assembly code.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_arch.h>           // HAL header
+#include <cyg/hal/hal_intr.h>           // HAL header
+#include <cyg/hal/hal_cache.h>          // HAL header
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h>
+# include <cyg/kernel/instrmnt.h>
+#endif
+
+/*
+ * This program is used to generate definitions needed by
+ * assembly language modules.
+ *
+ * This technique was first used in the OSF Mach kernel code:
+ * generate asm statements containing #defines,
+ * compile this file to assembler, and then extract the
+ * #defines from the assembly-language output.
+ */
+
+#define DEFINE(sym, val) \
+        asm volatile("\n\t.equ\t" #sym ",%0" : : "i" (val))
+
+int
+main(void)
+{
+    // Some other exception related definitions
+    DEFINE(CYGNUM_HAL_ISR_COUNT, CYGNUM_HAL_ISR_COUNT);
+    DEFINE(CYGNUM_HAL_VSR_COUNT, CYGNUM_HAL_VSR_COUNT);
+    DEFINE(CYGNUM_HAL_VECTOR_INTERRUPT, CYGNUM_HAL_VECTOR_INTERRUPT);
+    DEFINE(CYGNUM_HAL_VECTOR_BREAKPOINT, CYGNUM_HAL_VECTOR_BREAKPOINT);
+
+    // Interrupt details
+    DEFINE(CYGNUM_HAL_INTERRUPT_INTC_V320USC_base, CYGNUM_HAL_INTERRUPT_INTC_V320USC_base);
+    DEFINE(CYGNUM_HAL_INTERRUPT_INTC_PCI_base, CYGNUM_HAL_INTERRUPT_INTC_PCI_base);
+    DEFINE(CYGNUM_HAL_INTERRUPT_INTC_IO_base, CYGNUM_HAL_INTERRUPT_INTC_IO_base);
+    DEFINE(CYGARC_REG_INT_STAT, CYGARC_REG_INT_STAT);
+    DEFINE(CYGARC_REG_PCI_STAT, CYGARC_REG_PCI_STAT);
+    DEFINE(CYGARC_REG_IO_STAT, CYGARC_REG_IO_STAT);
+    DEFINE(CYGARC_REG_PCI_MASK, CYGARC_REG_PCI_MASK);
+    DEFINE(CYGARC_REG_IO_MASK, CYGARC_REG_IO_MASK);
+    DEFINE(CYGARC_REG_INT_CFG0, CYGARC_REG_INT_CFG0);
+    DEFINE(CYGARC_REG_INT_CFG3, CYGARC_REG_INT_CFG3);
+#if defined(CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN)
+    DEFINE(CYGNUM_HAL_INTERRUPT_CHAINING, CYGNUM_HAL_INTERRUPT_CHAINING);
+#endif
+
+    return 0;
+}
+
+//--------------------------------------------------------------------------
+// EOF plf_mk_defs.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/ref4955/current/src/plf_stub.c
@@ -0,0 +1,61 @@
+//=============================================================================
+//
+//      plf_stub.c
+//
+//      Platform specific code for GDB stub support.
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-05-15
+// Purpose:     Platform specific code for GDB stub support.
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/hal/hal_stub.h>
+
+#include <cyg/hal/hal_io.h>             // HAL IO macros
+
+//-----------------------------------------------------------------------------
+// Stub init
+
+void
+hal_plf_stub_init(void)
+{
+}
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+//-----------------------------------------------------------------------------
+// End of plf_stub.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/ChangeLog
@@ -0,0 +1,117 @@
+2000-09-12  Jesper Skov  <jskov@redhat.com>
+
+	* include/variant.inc: Enable div-by-zero FPU exceptions.
+
+2000-09-06  Jesper Skov  <jskov@redhat.com>
+
+	* include/variant.inc: Enable the cache after clearing it.
+
+2000-09-01  Jonathan Larmour  <jlarmour@redhat.com>
+ 
+        * include/var_arch.h: tx49 GDB stubs now use 32-bits internally to
+        represent registers
+
+2000-08-31  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/mips_tx49.ld: Use HAL table sections instead of devtab sections
+
+2000-06-06  Jesper Skov  <jskov@redhat.com>
+
+	* include/var_cache.h: Define HAL_ICACHE_INVALIDATE_ALL which
+	disables cache during operation.
+
+2000-05-25  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_mips_tx49.cdl: Use FPU double-LE layout in 32bit mode.
+
+2000-05-24  Jesper Skov  <jskov@redhat.com>
+
+	* src/mips_tx49.ld: Application contructors run after eCos
+	constructors.
+
+2000-05-22  Jesper Skov  <jskov@redhat.com>
+
+	* include/variant.inc: Flush all ways of cache on startup.
+
+	* include/var_cache.h: 
+	* cdl/hal_mips_tx49.cdl: Comment cleanups.
+
+	* include/var_cache.h: Cleaned up. Use arch macros.
+
+2000-05-18  Jesper Skov  <jskov@redhat.com>
+
+	* src/mips_tx49.ld: Exclude libgcc constructors from CTOR list.
+
+	* cdl/hal_mips_tx49.cdl: Set cache size to 32kB.
+
+2000-05-17  Jesper Skov  <jskov@redhat.com>
+
+	* src/mips_tx49.ld (hal_virtual_vector_table): Added.
+
+2000-05-16  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_mips_tx49.cdl: Platform can select FPU mode.
+
+2000-05-15  Jesper Skov  <jskov@redhat.com>
+
+	* include/variant.inc: 
+	* include/var_cache.h:
+	The cache-enable bits must be 0 to enable. Enable
+	caching/writeback for kseg0.
+	
+	* src/variant.S: 
+	* include/var_arch.h: 
+	Cleanup.
+
+	* include/variant.inc: Copied in various stuff from VR4300 file.
+
+	* include/var_cache.h: Cleanup. Added enabled macros.
+
+	* cdl/hal_mips_tx49.cdl: Cleanup. Enable FPU.
+
+2000-05-11  Jesper Skov  <jskov@redhat.com>
+
+	* src/mips_tx49.ld: Workaround minor tool problem.
+
+	* src/variant.S: Emptied.
+
+	* src/mips_tx49.ld: Move vsr to avoid conflict with 'other'
+	exception entry having vectors in RAM.
+
+	* include/var_arch.h: GDB expects 64 bit registers.
+
+	* cdl/hal_mips_tx49.cdl: Add (disabled) 64 bit related options.
+
+	* src/mips_tx49.ld: Workaround for linker buglet.
+
+	* include/var_cache.h: Minor tweaks.
+
+2000-05-09  Jesper Skov  <jskov@redhat.com>
+
+	* Cloned from hal/mips/tx39
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/cdl/hal_mips_tx49.cdl
@@ -0,0 +1,142 @@
+# ====================================================================
+#
+#      hal_mips_tx49.cdl
+#
+#      MIPS/TX49 variant architectural HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  bartv, nickg
+# Contributors:
+# Date:           2000-05-15
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_MIPS_TX49 {
+    display       "TX49 variant"
+    parent        CYGPKG_HAL_MIPS
+    hardware
+    include_dir   cyg/hal
+    define_header hal_mips_tx49.h
+    description   "
+           The TX49 architecture HAL package provides generic support
+           for this processor architecture. It is also necessary to
+           select a specific target platform HAL package."
+
+    cdl_component CYGPKG_HAL_MIPS_TX4955 {
+        display       "TX4955 microprocessor"
+        default_value 1
+        implements    CYGINT_HAL_MIPS_VARIANT
+        description "
+            The TMPR4955F microprocessor. This is an embedded part that in
+            addition to the TX49 processor core has built in peripherals
+            such as memory controllers, DMA controllers, serial ports and
+            timers/counters."               
+
+        define_proc {
+            # Sizes are configurable (on the core). Should be configurable.
+            puts $::cdl_header "#define CYGHWR_HAL_DCACHE_SIZE 32768"
+            puts $::cdl_header "#define CYGHWR_HAL_ICACHE_SIZE 32768"
+        }
+
+        cdl_option CYGHWR_HAL_MIPS_64BIT {
+            display    "Variant 64 bit architecture support"
+            description "
+                While the TX49 is a 64bit CPU, only its 32bit mode is
+                currently supported in eCos."
+            calculated 0
+        }
+
+        # This is optional (on the core). Should be configurable.
+        cdl_option CYGHWR_HAL_MIPS_FPU {
+            display    "Variant FPU support"
+            calculated 1
+        }
+
+        cdl_interface CYGINT_HAL_MIPS_FPU_64BIT {
+            display "Variant 64 bit FPU support interface"
+        }
+
+        cdl_option CYGHWR_HAL_MIPS_FPU_64BIT {
+            display    "Variant 64 bit FPU support"
+            calculated { CYGINT_HAL_MIPS_FPU_64BIT == 1 ? 1 : 0 }
+        }
+
+        cdl_option CYGHWR_HAL_MIPS_FPU_32BIT {
+            display    "Variant 32 bit FPU support"
+            calculated { CYGINT_HAL_MIPS_FPU_64BIT == 0 ? 1 : 0 }
+        }
+
+        # FGRn+1 is most significant part of the FGRn&FGRn+1 pair of FPRn/2
+        # This is true for BE mips2 mode at least. Not sure about fp64 mode
+        cdl_option CYGPKG_HAL_MIPS_DOUBLE_LSBFIRST {
+            active_if CYGHWR_HAL_MIPS_FPU_32BIT
+            calculated 1
+        }
+
+        cdl_interface CYGINT_HAL_MIPS_MSBFIRST {
+            no_define
+            display    "CPU Variant big-endian interface"
+        }
+
+        cdl_option CYGPKG_HAL_MIPS_MSBFIRST {
+            display    "CPU Variant big-endian"
+            calculated { CYGINT_HAL_MIPS_MSBFIRST == 0 ? 0 : 1 }
+        }
+
+        cdl_option CYGPKG_HAL_MIPS_LSBFIRST {
+            display    "CPU Variant little-endian"
+            calculated { CYGINT_HAL_MIPS_MSBFIRST != 0 ? 0 : 1 }
+        }
+    }
+
+    define_proc {
+        puts $::cdl_header "#include <pkgconf/hal_mips.h>"
+    }
+
+    compile       var_misc.c variant.S
+
+    make {
+        <PREFIX>/lib/target.ld: <PACKAGE>/src/mips_tx49.ld
+        $(CC) -E -P -Wp,-MD,target.tmp -DEXTRAS=1 -xc $(INCLUDE_PATH) $(CFLAGS) -o $@ $<
+        @echo $@ ": \\" > $(notdir $@).deps
+        @tail +2 target.tmp >> $(notdir $@).deps
+        @echo >> $(notdir $@).deps
+        @rm target.tmp
+    }
+
+    cdl_option CYGBLD_LINKER_SCRIPT {
+        display "Linker script"
+        flavor data
+	no_define
+        calculated  { "src/mips_tx49.ld" }
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/include/var_arch.h
@@ -0,0 +1,62 @@
+#ifndef CYGONCE_HAL_VAR_ARCH_H
+#define CYGONCE_HAL_VAR_ARCH_H
+
+//==========================================================================
+//
+//      var_arch.h
+//
+//      Architecture specific abstractions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    nickg
+// Contributors: nickg, jskov
+// Date:         2000-05-15
+// Purpose:      Define architecture abstractions
+// Description:  This file contains any extra or modified definitions for
+//               this variant of the architecture.
+// Usage:        #include <cyg/hal/var_arch.h>
+//              
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+
+// -------------------------------------------------------------------------
+// Although the TX49 is really a 64 bit CPU, we have defined
+// target_register_t elsewhere to be 32-bits because we only support
+// 32-bit mode. Registers will still be sent to GDB as 64-bit, but that's
+// not relevant for CYG_HAL_GDB_REG.
+
+#define CYG_HAL_GDB_REG CYG_WORD32
+
+//--------------------------------------------------------------------------
+#endif // CYGONCE_HAL_VAR_ARCH_H
+// End of var_arch.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/include/var_cache.h
@@ -0,0 +1,202 @@
+#ifndef CYGONCE_VAR_CACHE_H
+#define CYGONCE_VAR_CACHE_H
+
+//=============================================================================
+//
+//      var_cache.h
+//
+//      HAL cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   nickg
+// Contributors:nickg, jskov
+// Date:        2000-05-09
+// Purpose:     Cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations.
+// Usage:
+//              #include <cyg/hal/imp_cache.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+
+#include <cyg/hal/mips-regs.h>
+
+#include <cyg/hal/plf_cache.h>
+
+//=============================================================================
+// Toshiba TX4955
+
+#ifdef CYGPKG_HAL_MIPS_TX4955
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+#define HAL_DCACHE_SIZE                 CYGHWR_HAL_DCACHE_SIZE // size in bytes
+#define HAL_DCACHE_LINE_SIZE            32      // Size of a data cache line
+#define HAL_DCACHE_WAYS                 4       // Associativity of the cache
+
+// Instruction cache
+#define HAL_ICACHE_SIZE                 CYGHWR_HAL_ICACHE_SIZE // size in bytes
+#define HAL_ICACHE_LINE_SIZE            32      // Size of a cache line
+#define HAL_ICACHE_WAYS                 4       // Associativity of the cache
+
+#define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+#define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Cache controls
+
+// Register $16 is Config register (controls cache state)
+
+// Config Register fields
+#define CYGARC_REG_CONFIG_ICE      0x00020000 // Instruction cache enable
+#define CYGARC_REG_CONFIG_DCE      0x00010000 // Data cache enable
+
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache
+// This uses a bit in the config register, which is TX49 specific.
+#define HAL_DCACHE_ENABLE_DEFINED
+#define HAL_DCACHE_ENABLE()                             \
+    CYG_MACRO_START                                     \
+    cyg_uint32 tmp;                                     \
+    asm volatile ("mfc0 %0,$16;"                        \
+                  "and  %0,%0,%1;"                      \
+                  "mtc0 %0,$16;"                        \
+                  : "=&r" (tmp)                         \
+                  : "r" (~CYGARC_REG_CONFIG_DCE)        \
+                 );                                     \
+    CYG_MACRO_END
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE_DEFINED
+#define HAL_DCACHE_DISABLE()                            \
+    CYG_MACRO_START                                     \
+    cyg_uint32 tmp;                                     \
+    asm volatile ("mfc0 %0,$16;"                        \
+                  "or   %0,%0,%1;"                      \
+                  "mtc0 %0,$16;"                        \
+                  : "=&r" (tmp)                         \
+                  : "r" (CYGARC_REG_CONFIG_DCE)         \
+                 );                                     \
+    CYG_MACRO_END
+
+#define HAL_DCACHE_IS_ENABLED_DEFINED
+#define HAL_DCACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    cyg_uint32 _cstate_;                        \
+    asm volatile ( "mfc0   %0,$16\n"            \
+                   : "=r"(_cstate_)             \
+                   );                           \
+    if( _cstate_ & CYGARC_REG_CONFIG_DCE)       \
+       _state_ = 0;                             \
+    else                                        \
+      _state_ = 1;                              \
+    CYG_MACRO_END
+
+// Architecture HAL defines other operations
+
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE_DEFINED
+#define HAL_ICACHE_ENABLE()                             \
+    CYG_MACRO_START                                     \
+    cyg_uint32 tmp;                                     \
+    asm volatile ("mfc0 %0,$16;"                        \
+                  "and  %0,%0,%1;"                      \
+                  "mtc0 %0,$16;"                        \
+                  : "=&r" (tmp)                         \
+                  : "r" (~CYGARC_REG_CONFIG_ICE)        \
+                 );                                     \
+    CYG_MACRO_END
+
+// Disable the instruction cache
+#define HAL_ICACHE_DISABLE_DEFINED
+#define HAL_ICACHE_DISABLE()                            \
+    CYG_MACRO_START                                     \
+    cyg_uint32 tmp;                                     \
+    asm volatile ("mfc0 %0,$16;"                        \
+                  "or   %0,%0,%1;"                      \
+                  "mtc0 %0,$16;"                        \
+                  : "=&r" (tmp)                         \
+                  : "r" (CYGARC_REG_CONFIG_ICE)         \
+                 );                                     \
+    CYG_MACRO_END
+
+#define HAL_ICACHE_IS_ENABLED_DEFINED
+#define HAL_ICACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    cyg_uint32 _cstate_;                        \
+    asm volatile ( "mfc0   %0,$16\n"            \
+                   : "=r"(_cstate_)             \
+                   );                           \
+    if( _cstate_ & CYGARC_REG_CONFIG_ICE)       \
+       _state_ = 0;                             \
+    else                                        \
+      _state_ = 1;                              \
+    CYG_MACRO_END
+
+// TX49 cache instruction must not affect the line it executes out of,
+// so disable instruction cache before invalidating it.
+#define HAL_ICACHE_INVALIDATE_ALL_DEFINED
+#define HAL_ICACHE_INVALIDATE_ALL()                                           \
+    CYG_MACRO_START                                                           \
+    register CYG_ADDRESS _baddr_ = 0x80000000;                                \
+    register CYG_ADDRESS _addr_ = 0x80000000;                                 \
+    register CYG_WORD _state_;                                                \
+    _HAL_ASM_SET_MIPS_ISA(3);                                                 \
+    HAL_ICACHE_IS_ENABLED( _state_ );                                         \
+    HAL_ICACHE_DISABLE();                                                     \
+    for( ; _addr_ < _baddr_+HAL_ICACHE_SIZE; _addr_ += HAL_ICACHE_LINE_SIZE ) \
+    { _HAL_ASM_ICACHE_ALL_WAYS(0x00, _addr_); }                               \
+    if( _state_ ) HAL_ICACHE_ENABLE();                                        \
+    _HAL_ASM_SET_MIPS_ISA(0);                                                 \
+    CYG_MACRO_END
+
+// Architecture HAL defines other operations
+
+#endif // CYGPKG_HAL_MIPS_TX4955
+
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_CACHE_H
+// End of var_cache.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/include/var_intr.h
@@ -0,0 +1,72 @@
+#ifndef CYGONCE_HAL_VAR_INTR_H
+#define CYGONCE_HAL_VAR_INTR_H
+
+//==========================================================================
+//
+//      imp_intr.h
+//
+//      TX49 Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov
+// Date:         2000-05-09
+// Purpose:      TX49 Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock for variants of the TX49 MIPS
+//               architecture.
+//              
+// Usage:
+//              #include <cyg/hal/var_intr.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/plf_intr.h>
+
+
+//--------------------------------------------------------------------------
+// Interrupt vectors.
+
+// Vectors and handling of these are defined in platform HALs since the
+// CPU itself does not have a builtin interrupt controller.
+
+//--------------------------------------------------------------------------
+// Clock control
+
+// This is handled by the default code
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_VAR_INTR_H
+// End of var_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/include/variant.inc
@@ -0,0 +1,160 @@
+#ifndef CYGONCE_HAL_VARIANT_INC
+#define CYGONCE_HAL_VARIANT_INC
+##=============================================================================
+##
+##      variant.inc
+##
+##      TX49 family assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):   nickg
+## Contributors:nickg, jskov
+## Date:        2000-05-10
+## Purpose:     TX49 family definitions.
+## Description: This file contains various definitions and macros that are
+##              useful for writing assembly code for the TX49 CPU family.
+## Usage:
+##              #include <cyg/hal/variant.inc>
+##              ...
+##              
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+        
+#include <cyg/hal/platform.inc>
+
+##-----------------------------------------------------------------------------
+## Define CPU variant for architecture HAL.
+                        
+#define CYG_HAL_MIPS_R4900
+
+#------------------------------------------------------------------------------
+# Set up initial value for config register. Sets endian mode and
+# enable the cache on kseg0.
+
+#if defined(CYGPKG_HAL_MIPS_MSBFIRST)
+# define        INITIAL_CONFIG0 0x00008000
+#elif defined(CYGPKG_HAL_MIPS_LSBFIRST)
+# define        INITIAL_CONFIG0 0x00000000
+#else
+# error MIPS endianness not set by configuration
+#endif
+
+#------------------------------------------------------------------------------
+# Set up initial value for FPU FCR31 register. We set the FS bit to flush
+# denormalized results to zero and enable div-by-zero exceptions.
+
+#ifndef CYG_HAL_MIPS_FCSR_INIT
+#define CYG_HAL_MIPS_FCSR_INIT 0x01000400
+#endif
+
+#------------------------------------------------------------------------------
+# Cache macros.
+        
+#ifndef CYGPKG_HAL_MIPS_CACHE_DEFINED
+
+        .macro  hal_cache_init
+
+        mfc0    v0,config0              # disable caches, but allow caching
+        nop                             # on kseg0 so cache macros can just
+        nop                             # fiddle ICE/IDE later on.
+        la      v1,0xfffffff8
+        and     v0,v0,v1
+        ori     v0,v0,3                 # kseg0 is writeback cache enabled
+        lui     v1,3
+        or      v0,v0,v1                # set ICE&IDE (disables caches)
+        mtc0    v0,config0
+        nop
+        nop
+        nop
+
+        .set mips3                      # Set ISA to MIPS 3 to allow cache insns
+
+        # Now ensure the caches are invalidated. The caches are NOT cleared or
+        # invalidated on non-power-up resets and may come up in a random state
+        # on power-up. Hence they may contain stale or randomly bogus data.
+        # Here we use the index-store-tag cache operation to clear all the 
+        # cache tags and states to zero. This will render them all invalid on 
+        # the TX49.
+
+        # D-cache:
+        la      t0,0x80000000
+        ori     t1,t0,0x8000
+1:
+        mtc0    zero,$28
+        mtc0    zero,$29
+        cache   0x09,0(t0)
+        cache   0x09,1(t0)
+        cache   0x09,2(t0)
+        cache   0x09,3(t0)
+        addi    t0,t0,0x20
+        sub     v0,t1,t0
+        bgez    v0,1b
+        nop                             # delay slot
+
+        # I-cache:
+        la      a0,0x80000000
+        ori     a1,a0,0x8000
+1:
+        mtc0    zero,$28
+        mtc0    zero,$29
+        cache   0x08,0(a0)
+        cache   0x08,1(a0)
+        cache   0x08,2(a0)
+        cache   0x08,3(a0)
+        addi    a0,a0,0x20
+        sub     v0,a1,a0
+        bgez    v0,1b
+        nop                             # delay slot
+
+        .set mips0                      # reset ISA to default
+
+        # Now enable caches
+        mfc0    v0,config0
+        nop
+        nop
+        la      v1,0xfffcffff           # clear ICE&IDE (enables caches)
+        and     v0,v0,v1
+        mtc0    v0,config0
+        nop
+        nop
+        nop
+
+        .endm
+
+#define CYGPKG_HAL_MIPS_CACHE_DEFINED
+
+#endif  
+
+#------------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_VARIANT_INC
+# end of variant.inc
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/src/mips_tx49.ld
@@ -0,0 +1,359 @@
+//===========================================================================
+//
+// MLT linker script for MIPS TX49
+//
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
+
+#include <pkgconf/system.h>
+
+OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips",
+              "elf32-littlemips")
+/* The preprocessor defines mips, but we know we're mips :-) */
+#undef mips
+OUTPUT_ARCH(mips:4900)
+
+STARTUP(vectors.o)
+ENTRY(reset_vector)
+#if defined(EXTRAS) && defined(CYGPKG_IO)
+INPUT(extras.o)
+#endif
+GROUP(libtarget.a libgcc.a)
+
+/* FIXME: The MLT should pass in the required alignment since it must be
+ * the same as the VMA's alignment. As a result of this bug, all the REF4955
+ * ROM mlt files have alignment 8, when some should have alignment 4
+ * (902557-CR)
+ */
+#define ALIGN_LMA 8
+#define FOLLOWING(_section_) AT ((LOADADDR (_section_) + SIZEOF (_section_) + ALIGN_LMA - 1) & ~ (ALIGN_LMA - 1))
+#define LMA_EQ_VMA
+#define FORCE_OUTPUT . = .
+
+#define SECTIONS_BEGIN
+
+#if defined(CYG_HAL_STARTUP_RAM)
+
+/* this version for RAM startup */
+#define SECTION_rom_vectors(_region_, _vma_, _lma_) \
+    .rom_vectors _vma_ : _lma_ \
+    { KEEP (*(.utlb_vector)) \
+    . = ALIGN(0x80); KEEP(*(.other_vector)) \
+        /* debug and reset vector not used in RAM version */ \
+        KEEP(*(.debug_vector)) \
+        KEEP (*(.reset_vector)) } \
+    > _region_
+
+#elif defined(CYG_HAL_STARTUP_ROM)
+
+/* this version for ROM startup */
+#define SECTION_rom_vectors(_region_, _vma_, _lma_) \
+    .rom_vectors _vma_ : _lma_ \
+    { KEEP (*(.reset_vector)) \
+    . = ALIGN(0x100); KEEP (*(.utlb_vector)) \
+    . = ALIGN(0x80); KEEP(*(.other_vector)) \
+    . = ALIGN(0x100); KEEP(*(.debug_vector)) } \
+    > _region_
+
+#endif /* ROM startup version of ROM vectors */
+
+#define SECTION_ROMISC(_region_, _vma_, _lma_)                                 \
+  .interp _vma_  : _lma_ { *(.interp)                            } > _region_  \
+  .hash          : FOLLOWING(.interp)        { *(.hash)          } > _region_  \
+  .dynsym        : FOLLOWING(.hash)          { *(.dynsym)        } > _region_  \
+  .dynstr        : FOLLOWING(.dynsym)        { *(.dynstr)        } > _region_  \
+  .gnu.version   : FOLLOWING(.dynstr)        { *(.gnu.version)   } > _region_  \
+  .gnu.version_d : FOLLOWING(.gnu.version)   { *(.gnu.version_d) } > _region_  \
+  .gnu.version_r : FOLLOWING(.gnu.version_d) { *(.gnu.version_r) } > _region_  \
+  .plt           : FOLLOWING(.gnu.version_r) { *(.plt)           } > _region_
+
+#define SECTION_RELOCS(_region_, _vma_, _lma_)                              \
+  .rel.text      :                                                          \
+    {                                                                       \
+      *(.rel.text)                                                          \
+      *(.rel.text.*)                                                        \
+      *(.rel.gnu.linkonce.t*)                                               \
+    } > _region_                                                            \
+  .rela.text     :                                                          \
+    {                                                                       \
+      *(.rela.text)                                                         \
+      *(.rela.text.*)                                                       \
+      *(.rela.gnu.linkonce.t*)                                              \
+    } > _region_                                                            \
+  .rel.data      :                                                          \
+    {                                                                       \
+      *(.rel.data)                                                          \
+      *(.rel.data.*)                                                        \
+      *(.rel.gnu.linkonce.d*)                                               \
+    } > _region_                                                            \
+  .rela.data     :                                                          \
+    {                                                                       \
+      *(.rela.data)                                                         \
+      *(.rela.data.*)                                                       \
+      *(.rela.gnu.linkonce.d*)                                              \
+    } > _region_                                                            \
+  .rel.rodata    :                                                          \
+    {                                                                       \
+      *(.rel.rodata)                                                        \
+      *(.rel.rodata.*)                                                      \
+      *(.rel.gnu.linkonce.r*)                                               \
+    } > _region_                                                            \
+  .rela.rodata   :                                                          \
+    {                                                                       \
+      *(.rela.rodata)                                                       \
+      *(.rela.rodata.*)                                                     \
+      *(.rela.gnu.linkonce.r*)                                              \
+    } > _region_                                                            \
+  .rel.got       :   { *(.rel.got)    } > _region_                          \
+  .rela.got      :   { *(.rela.got)   } > _region_                          \
+  .rel.ctors     :   { *(.rel.ctors)  } > _region_                          \
+  .rela.ctors    :   { *(.rela.ctors) } > _region_                          \
+  .rel.dtors     :   { *(.rel.dtors)  } > _region_                          \
+  .rela.dtors    :   { *(.rela.dtors) } > _region_                          \
+  .rel.init      :   { *(.rel.init)   } > _region_                          \
+  .rela.init     :   { *(.rela.init)  } > _region_                          \
+  .rel.fini      :   { *(.rel.fini)   } > _region_                          \
+  .rela.fini     :   { *(.rela.fini)  } > _region_                          \
+  .rel.bss       :   { *(.rel.bss)    } > _region_                          \
+  .rela.bss      :   { *(.rela.bss)   } > _region_                          \
+  .rel.plt       :   { *(.rel.plt)    } > _region_                          \
+  .rela.plt      :   { *(.rela.plt)   } > _region_                          \
+  .rel.dyn       :   { *(.rel.dyn)    } > _region_
+
+#define SECTION_init(_region_, _vma_, _lma_)   \
+  .init _vma_ : _lma_                          \
+    {                                          \
+      FORCE_OUTPUT; KEEP (*(.init))            \
+    } > _region_ =0
+
+#define SECTION_text(_region_, _vma_, _lma_)   \
+  .text _vma_ : _lma_                          \
+    {                                          \
+      _stext = .; _ftext = . ;                 \
+      *(.text)                                 \
+      *(.text.*)                               \
+      *(.stub)                                 \
+      *(.gnu.warning)                          \
+      *(.gnu.linkonce.t*)                      \
+      *(.mips16.fn.*) *(.mips16.call.*)        \
+    } > _region_ =0                            \
+  _etext = .; PROVIDE (etext = .);
+
+#define SECTION_fini(_region_, _vma_, _lma_)   \
+  .fini _vma_ : _lma_                          \
+    {                                          \
+      FORCE_OUTPUT; KEEP (*(.fini))                   \
+    } > _region_ =0
+
+#define SECTION_rodata(_region_, _vma_, _lma_)        \
+  .rodata _vma_ : _lma_                               \
+    {                                                 \
+      FORCE_OUTPUT; *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*)    \
+    } > _region_
+
+#define SECTION_rodata1(_region_, _vma_, _lma_)       \
+  .rodata1 _vma_ : _lma_                              \
+    {                                                 \
+     FORCE_OUTPUT; *(.rodata1) *(.rodata1.*)          \
+    } > _region_
+
+#define SECTION_vsr_table(_region_, _vma_, _lma_)     \
+  .vsr_table _vma_ : _lma_                            \
+    {                                                 \
+      FORCE_OUTPUT; *(.vsr_table)                     \
+    } > _region_
+
+#define SECTION_data(_region_, _vma_, _lma_)          \
+  .data _vma_ : _lma_                                 \
+    {                                                 \
+      __ram_data_start = ABSOLUTE (.); _fdata = . ;   \
+      *(.data) *(.data.*) *(.gnu.linkonce.d*)         \
+    . = ALIGN (8);                                    \
+    SORT(CONSTRUCTORS)                                \
+    } > _region_                                      \
+    __rom_data_start = LOADADDR(.data);
+
+#define SECTION_data1(_region_, _vma_, _lma_)         \
+  .data1 _vma_ : _lma_                                \
+    {                                                 \
+       FORCE_OUTPUT; *(.data1) *(.data1.*)            \
+    } > _region_
+
+#define SECTION_eh_frame(_region_, _vma_, _lma_)      \
+  .eh_frame _vma_ : _lma_                             \
+    {                                                 \
+       FORCE_OUTPUT; *(.eh_frame)                     \
+    } > _region_
+
+#define SECTION_gcc_except_table(_region_, _vma_, _lma_) \
+  .gcc_except_table _vma_ : _lma_                        \
+    {                                                    \
+      FORCE_OUTPUT; *(.gcc_except_table)                 \
+    } > _region_
+
+
+/* FIXME: We shouldn't need to define __CTOR_LIST__/__CTOR_END__
+   and __DTOR_LIST__/__DTOR_END__ except by the PROVIDE lines.
+   However this doesn't work for old (99r1-era) toolchains, so
+   leave it for now. */
+
+/* The KEEP(*_ctors.o(.ctors)) rule is included to prevent
+   constructors from libgcc.a from turning up in the image.
+   They are NULL anyway. */
+
+#define SECTION_ctors(_region_, _vma_, _lma_)     \
+  .ctors _vma_ : _lma_                            \
+    {                                             \
+      FORCE_OUTPUT;                               \
+      KEEP (*crtbegin.o(.ctors))                  \
+      KEEP (*_ctors.o(.ctors))                  \
+      __CTOR_LIST__ = .;                \
+      PROVIDE (__CTOR_LIST__ = .);                \
+      KEEP (*(.ctors));                      \
+      KEEP (*(SORT(.ctors.*)))                    \
+      __CTOR_END__ = .;                 \
+      PROVIDE (__CTOR_END__ = .);                 \
+    } > _region_
+
+#define SECTION_dtors(_region_, _vma_, _lma_)     \
+  .dtors _vma_ : _lma_                            \
+    {                                             \
+      FORCE_OUTPUT;                               \
+      KEEP (*crtbegin.o(.dtors))                  \
+      __DTOR_LIST__ = .;                \
+      PROVIDE (__DTOR_LIST__ = .);                \
+      KEEP (*(SORT(.dtors.*)))                    \
+      __DTOR_END__ = .;                 \
+      KEEP (*(.dtors));                      \
+      PROVIDE (__DTOR_END__ = .);                 \
+    } > _region_
+
+#define SECTION_devtab(_region_, _vma_, _lma_)    \
+  .devtab _vma_ : _lma_                           \
+    {                                             \
+      FORCE_OUTPUT;                               \
+      KEEP(*( SORT (.ecos.table.*))) ;            \
+    } > _region_
+
+#define SECTION_got(_region_, _vma_, _lma_)     \
+  _gp = ALIGN(16) + 0x7ff0;                     \
+  .got _vma_ : _lma_                            \
+    {                                           \
+      FORCE_OUTPUT; *(.got.plt) *(.got)         \
+    } > _region_
+
+#define SECTION_dynamic(_region_, _vma_, _lma_) \
+  .dynamic _vma_ : _lma_                        \
+    {                                           \
+      FORCE_OUTPUT; *(.dynamic)                 \
+    } > _region_
+
+  /* We want the small data sections together, so single-instruction offsets
+     can access them all, and initialized data all before uninitialized, so
+     we can shorten the on-disk segment size.  */
+
+#define SECTION_sdata(_region_, _vma_, _lma_)                 \
+  .sdata _vma_ : _lma_                                        \
+    {                                                         \
+      FORCE_OUTPUT; *(.sdata) *(.sdata.*) *(.gnulinkonce.s*)  \
+    } > _region_
+
+#define SECTION_lit8(_region_, _vma_, _lma_)    \
+  .lit8 _vma_ : _lma_                           \
+    {                                           \
+      FORCE_OUTPUT; *(.lit8)                    \
+    } > _region_
+
+#define SECTION_lit4(_region_, _vma_, _lma_)    \
+  .lit4 : FOLLOWING(.lit8)                      \
+    {                                           \
+      FORCE_OUTPUT; *(.lit4)                    \
+    } > _region_                                \
+  __ram_data_end = .; _edata = . ;              \
+  PROVIDE (edata = .);
+
+#define SECTION_sbss(_region_, _vma_, _lma_)                    \
+  __bss_start = .; _fbss = .;                                   \
+  .sbss _vma_ : _lma_                                           \
+    {                                                           \
+      FORCE_OUTPUT; *(.dynsbss) *(.sbss) *(.sbss.*) *(.scommon) \
+    } > _region_
+
+#define SECTION_bss(_region_, _vma_, _lma_)       \
+  .bss _vma_ : _lma_                              \
+    {                                             \
+      *(.dynbss) *(.bss) *(.bss.*) *(COMMON)      \
+    } > _region_                                  \
+  __bss_end = .;
+
+/* The /DISCARD/ section ensures that the output will not contain a
+ * .mdebug section as it confuses GDB. This is a workaround for CR 100804.
+ */
+
+#define SECTIONS_END . = ALIGN(4); _end = .; PROVIDE (end = .); \
+  /* Stabs debugging sections.  */                              \
+  .stab          0 : { *(.stab) }                               \
+  .stabstr       0 : { *(.stabstr) }                            \
+  .stab.excl     0 : { *(.stab.excl) }                          \
+  .stab.exclstr  0 : { *(.stab.exclstr) }                       \
+  .stab.index    0 : { *(.stab.index) }                         \
+  .stab.indexstr 0 : { *(.stab.indexstr) }                      \
+  .comment       0 : { *(.comment) }                            \
+  /* DWARF debug sections.                                      \
+     Symbols in the DWARF debugging sections are relative to    \
+     the beginning of the section so we begin them at 0.  */    \
+  /* DWARF 1 */                                                 \
+  .debug          0 : { *(.debug) }                             \
+  .line           0 : { *(.line) }                              \
+  /* GNU DWARF 1 extensions */                                  \
+  .debug_srcinfo  0 : { *(.debug_srcinfo) }                     \
+  .debug_sfnames  0 : { *(.debug_sfnames) }                     \
+  /* DWARF 1.1 and DWARF 2 */                                   \
+  .debug_aranges  0 : { *(.debug_aranges) }                     \
+  .debug_pubnames 0 : { *(.debug_pubnames) }                    \
+  /* DWARF 2 */                                                 \
+  .debug_info     0 : { *(.debug_info) }                        \
+  .debug_abbrev   0 : { *(.debug_abbrev) }                      \
+  .debug_line     0 : { *(.debug_line) }                        \
+  .debug_frame    0 : { *(.debug_frame) }                       \
+  .debug_str      0 : { *(.debug_str) }                         \
+  .debug_loc      0 : { *(.debug_loc) }                         \
+  .debug_macinfo  0 : { *(.debug_macinfo) }                     \
+  /* SGI/MIPS DWARF 2 extensions */                             \
+  .debug_weaknames 0 : { *(.debug_weaknames) }                  \
+  .debug_funcnames 0 : { *(.debug_funcnames) }                  \
+  .debug_typenames 0 : { *(.debug_typenames) }                  \
+  .debug_varnames  0 : { *(.debug_varnames) }                   \
+  /* These must appear regardless of  .  */                     \
+  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }             \
+  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }                \
+  /DISCARD/        0 : { *(.mdebug) }
+
+#include CYGHWR_MEMORY_LAYOUT_LDI
+
+// 0-0x200 reserved for vectors
+hal_vsr_table = 0x80000200;
+hal_virtual_vector_table = 0x80000300;
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/src/var_misc.c
@@ -0,0 +1,66 @@
+//==========================================================================
+//
+//      var_misc.c
+//
+//      HAL implementation miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    nickg
+// Contributors: nickg, jlarmour
+// Date:         1999-01-21
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//========================================================================*/
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>         // Base types
+#include <cyg/infra/cyg_trac.h>         // tracing macros
+#include <cyg/infra/cyg_ass.h>          // assertion macros
+
+#include <cyg/hal/hal_intr.h>
+
+/*------------------------------------------------------------------------*/
+// Array which stores the configured priority levels for the configured
+// interrupts.
+
+volatile CYG_BYTE hal_interrupt_level[CYGNUM_HAL_ISR_COUNT];
+
+/*------------------------------------------------------------------------*/
+
+void hal_variant_init(void)
+{
+}
+
+/*------------------------------------------------------------------------*/
+/* End of var_misc.c                                                      */
new file mode 100644
--- /dev/null
+++ b/packages/hal/mips/tx49/current/src/variant.S
@@ -0,0 +1,48 @@
+##=============================================================================
+##
+##	variant.S
+##
+##	MIPS REF4955/TX4955 variant code
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	nickg
+## Contributors:nickg
+## Date:	2000-05-15
+## Purpose:	MIPS REF4955/TX4955 variant code
+## Description:	Variant specific code for REF4955 board.
+##              
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+# Nothing at the moment.
+        	
+##-----------------------------------------------------------------------------
+## end of variant.S
+	
--- a/packages/hal/powerpc/arch/current/ChangeLog
+++ b/packages/hal/powerpc/arch/current/ChangeLog
@@ -1,3 +1,9 @@
+2000-10-31  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/powerpc.ld: Use .sdata.* rather than .sdata* so that .sdata2
+	doesn't get matched so that the linker script symbols are still valid.
+	Ditto for .sbss*.
+
 2000-10-24  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* src/powerpc.ld: Match multiple sections where relevant (.bss*,
--- a/packages/hal/powerpc/arch/current/src/powerpc.ld
+++ b/packages/hal/powerpc/arch/current/src/powerpc.ld
@@ -111,7 +111,7 @@ GROUP(libtarget.a libgcc.a)
       /* We want the small data sections together, so single-instruction */   \
       /* offsets can access them all, and initialized data all before    */   \
       /* uninitialized, so we can shorten the on-disk segment size.      */   \
-    __SDATA_START__ = ABSOLUTE(.); *(.sdata*)                                 \
+    __SDATA_START__ = ABSOLUTE(.); *(.sdata.*)                                 \
     __SDATA2_START__ = ABSOLUTE(.); *(.sdata2*) }                             \
     > _region_                                                                \
     __rom_data_start = LOADADDR(.data);                                       \
@@ -121,7 +121,7 @@ GROUP(libtarget.a libgcc.a)
 #define SECTION_sbss(_region_, _vma_, _lma_)                     \
     .sbss _vma_ : _lma_                                                         \
     { __sbss_start = ABSOLUTE (.);                                        \
-    __SBSS_START__ = ABSOLUTE(.); *(.sbss*) __SBSS_END__ = ABSOLUTE(.);   \
+    __SBSS_START__ = ABSOLUTE(.); *(.sbss.*) __SBSS_END__ = ABSOLUTE(.);   \
     __SBSS2_START__ = ABSOLUTE(.); *(.sbss2*) __SBSS2_END__ = ABSOLUTE(.);\
     *(.scommon*)                                                          \
     __sbss_end = ABSOLUTE (.); }                                          \
index 9463a5c92321e18b78aa1c8fa38f51581ae69523..0e60bac1b9919d448f90b7164af93297bb4c5c59
GIT binary patch
literal 83808
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
E0{cLEG5`Po
index a1dae2045a17c44ca38c7e3377c053edf9b02eeb..48a7a4361f8d144fe6dc5392af6d4502f0fe4a9a
GIT binary patch
literal 186135
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
--- a/packages/hal/powerpc/mbx/current/images/redboot_RAM.srec
+++ b/packages/hal/powerpc/mbx/current/images/redboot_RAM.srec
@@ -396,22 +396,22 @@ S21902202A00004C00012C7C708BA64C00012C7C
 S21902203F007C70C3A67C78C2A6646320007C78C3A63C600000F4
 S219022054606330027C0004AC7C6001247C0004AC3C6000016025
 S21902206963FFFC3C80FFFF6084FFFC3CA0000260A51F308403AB
-S21902207E0004940400047C0328404082FFF43C4000036042B732
-S219022093D87C631A787C7C43A67C8422787C9D43A64800467D60
-S2190220A83C200003602148F07C3043A63C600002606300003CD2
+S21902207E0004940400047C0328404082FFF43C4000036042C722
+S219022093507C631A787C7C43A67C8422787C9D43A6480049352D
+S2190220A83C200003602158607C3043A63C600002606300003C52
 S2190220BD800000608400003CA0000260A51F347C0328404182C3
 S2190220D200203863FFFC3884FFFC38A5FFFC840300049404008A
 S2190220E7047C0328404180FFF43C600002606321D43C8000002C
 S2190220FC608430003884FFFC38A000209464000438A5FFFF2C02
 S2190221110500004082FFF43C600002606322DC3C8000006084F9
-S219022126300090640014906400243C600003606338F03C800007
-S21902213B0460841DF0380000007C032040418200149003000012
-S219022150386300047C0320404180FFF43C600003606337E83C84
-S219022165800003608438E47C03204041820014900300003863F7
+S219022126300090640014906400243C600003606348603C800087
+S21902213B046084317C380000007C032040418200149003000072
+S219022150386300047C0320404180FFF43C600003606347603CFC
+S2190221658000036084485C7C032040418200149003000038636F
 S21902217A00047C0320404180FFF43821FFF4380000009001009D
-S21902218F00900100089421FFC8480041114800456548003C55BA
+S21902218F00900100089421FFC8480043C94800481D48003F0D8A
 S2190221A43C600000606330327C0004AC7C6001247C0004AC48BD
-S2190221B9003CA948003B7948003CA548005E75480079BD48001F
+S2190221B9003F6148003E2D48003F5D4800612D48007C69480088
 S2190221CE0405480000003821FF64906100989081008090A1009D
 S2190221E3883C600000606330327C0004AC7C6001247C0004AC3E
 S2190221F87C7142A69061000C7C9242A6908100107CB342A6903B
@@ -424,7 +424,7 @@ S21902227600689361006C9381007093A1007493
 S21902228B7C91C1003891E1003C7C6102A67C8902A67CBA02A673
 S2190222A07CDB02A6906100849081008C90A1009490C100907CEF
 S2190222B5230B783821FFC8380000009001000090010008942130
-S2190222CAFFC83CA0000260A5246C7CA803A648003ABC3821FF5B
+S2190222CAFFC83CA0000260A5246C7CA803A648003D703821FFA4
 S2190222DF64906100989081008090A100883C60000060633032EB
 S2190222F47C0004AC7C6001247C0004AC7C7142A69061000C7C27
 S2190223099242A6908100107CB342A690A100149001000090415F
@@ -436,13 +436,13 @@ S219022372005C93010060932100649341006893
 S2190223877093A1007493C1007893E1007C91C1003891E1003C2E
 S21902239C7C6102A67C8902A67CBA02A67CDB02A6906100849011
 S2190223B181008C90A1009490C100907C2E0B783C6000036063CE
-S2190223C648F03C800003608438F07CA408514180000C7CA1187D
+S2190223C658603C800003608448607CA408514180000C7CA1187D
 S2190223DB51418100087C611B7895C1FFFC3821FFC838000000B2
 S2190223F090010000900100089421FFC881EE009855EFB7FF41E9
 S2190224058200183DE0FF0061EF001C89EF000055EFF0BE39EF07
-S21902241A000191EE009855EF103A3C6000036063387091C300A2
-S21902242F00806E00983CC0000360C632407CC6782E3C800003CD
-S2190224446084332C7C84782E7CC903A64E800421802100703869
+S21902241A000191EE009855EF103A3C600003606347E891C3001B
+S21902242F00806E00983CC0000360C63FB87CC6782E3C80000348
+S219022444608440A47C84782E7CC903A64E8004218021007038E4
 S21902245921FFC83800000090010000900100089421FFC8382148
 S21902246E0070806100848081008880A1008C7C6103A67C8803BA
 S219022483A67CA903A681C1003881E1003C80C1001880E1001CDB
@@ -455,10 +455,10 @@ S2190225016004207C0004AC7C0001247C0004AC
 S2190225160008806100808081009480A100907C6FF1207C9A03E5
 S21902252BA67CBB03A68061000C8081001080A100148021000436
 S2190225407C0004AC4C00012C4C0000647C230B783C80000360E9
-S2190225558448F03884FFE87C8123789061000C7C6000A6906103
+S2190225558458603884FFE87C8123789061000C7C6000A6906183
 S21902256A00107C6802A69061001438000000900100009001005A
 S21902257F087C0000A660638000506004207C0004AC7C00012432
-S2190225947C0004AC9421FFC848006C8138210038806100147C4C
+S2190225947C0004AC9421FFC848006F2D38210038806100147C9D
 S2190225A96803A680A1000C806100107C0000A6506004207C0075
 S2190225BE04AC7C0001247C0004AC7CA12B784E8000209421FE23
 S2190225D3D87C0802A69321010C9341011093610114938101180C
@@ -467,3341 +467,3530 @@ S2190225FDBD3200813D00343860FFFF7D2803A6
 S21902261200013F4000034E800021813D00347C7E1B7838600023
 S219022627007D2803A63F6000033F2000004E800021801D004874
 S21902263C3C60000360630D407C0803A63D2000033D6000039313
-S2190226518937E893EB38084E8000213C0000403C6000033C8041
-S21902266600033CA00003901B37EC38630C9438840CC438A50CF8
-S21902267BD0939A3804480080353C6000033C8000033CA00003D0
-S2190226903CC0000338C60D1038630CDC38840CF438A50D04489F
-S2190226A50080113C60000338630D1448008005809A380480BBCF
-S2190226BA37EC3C60000338630D3848007FF13D2000033D6000AD
-S2190226CF03380937C83BAB37B87C1D00003D200003938937FC8F
-S2190226E4418200207C1C0378813D00003BBD00087D2803A64E8A
-S2190226F98000217C1DE0004082FFEC3F800003837C38102C1BAE
-S21902270E00004182004C3FA00003809D37F03C60000338630D33
-S2190227234448007F9180BD37F03D2000033BA000001CA503E8B3
-S21902273893A938103861000838800100480085E12C03FFFE408D
-S21902274D82000C93BC381048000008937C38107FFDFB787F3CFA
-S219022762CB787FDBF3782C1D0000418200143C60000338630DEC
-S2190227778048007F3D3BA00000386100083880010038A000FABB
-S21902278C480085992C0300004080001C3D200003800938142C5F
-S2190227A10000004182FFC44800A3414BFFFFBC40820020393C0E
-S2190227B63200800900347F63DB787C0803A64E80002148006619
-S2190227CB014BFFFF9C3861000848007F9D2C0300004081004CCB
-S2190227E03FA000033F40000438610008389D380038BA18D048A8
-S2190227F5008A957C631B794182001C8003000C807D3800389AC1
-S21902280A18D07C0803A64E800021480000143C60000338630D0B
-S21902281F8C3881000848007E913BA000014BFFFF3C9421FFF0F4
-S2190228347C0802A693E1000C900100142C0300027C9F23784010
-S219022849820144807F00043C80000338840DAC48007FA92C03D6
-S21902285E0000408200447D6000A67D605B783920000051200457
-S219022873207C0001243C0002004C00012C7C108BA64C00012C9B
-S2190228883D4002007C0004AC7D588BA67C0000A6516004207C10
-S21902289D000124480000F8807F00043C80000338840DB0480037
-S2190228B27F512C030000408200C07D6000A67D605B78392000FD
-S2190228C700512004207C00012439200000380000807C0903A680
-S2190228DC612010003D400E007C0004AC7D398BA67D588BA67C2F
-S2190228F1198BA67D588BA6392900104200FFE03C0004004C005C
-S219022906012C7C108BA64C00012C3D4004007C0004AC7D588B45
-S21902291BA639200000380000807C0903A6612010003D400E009F
-S2190229307C0004AC7D398BA67D588BA67C198BA67D588BA6396D
-S2190229452900104200FFE03C000C004C00012C7C108BA64C0052
-S21902295A012C3D400C007C0004AC7D588BA67C0000A6516004A2
-S21902296F207C000124480000243C600003809F000438630DB401
-S21902298448007D31480000103C60000338630DCC48007D218070
-S2190229990100147C0803A683E1000C382100104E800020942164
-S2190229AEFFE87C0802A693A1000C93C1001093E100149001003D
-S2190229C31C3D6000033D200003392936F83BEB36887C1F480085
-S2190229D84182002C7D3D4B783FC00003809F000480BF00008093
-S2190229EDDF0008387E0DD848007CC13BFF00107C1FE800408238
-S219022A02FFE48001001C7C0803A683A1000C83C1001083E10023
-S219022A1714382100184E8000209421FFA87C0802A6938100484C
-S219022A2C93A1004C93C1005093E100549001005C7C7D1B787CAD
-S219022A419C23783D20000339290DE8386100083880006238A0F8
-S219022A56000138C0000038E100383901003C48008B4D3D200027
-S219022A6B0339290DF8386100203880006C38A0000138C0000037
-S219022A8038E100403901004448008B293D4000037FA3EB787FE3
-S219022A9584E378394A0D1038A0000138C1000838E00002390079
-S219022AAA00003920000048008B1D2C0300004182004080010014
-S219022ABF3C2C000000408200143C60000338630E0048007BE5CD
-S219022AD448000024800100442C0000004082000C3800002090D3
-S219022AE90100408061003880810040480086998001005C7C086E
-S219022AFE03A68381004883A1004C83C1005083E10054382100B2
-S219022B13584E8000209421FFB87C0802A69381003893A1003C0C
-S219022B2893C1004093E100449001004C3D2000038009380C7CBF
-S219022B3D7D1B787C9C23783D2000039001002839290E1838617F
-S219022B5200083880007738A0000138C0000038E10020390100EC
-S219022B672448008A493D4000037FA3EB787F84E378394A0E28F7
-S219022B7C38A0000138C1000838E0000139010028392000004847
-S219022B91008A3D2C030000418200F8800100242C0000004182E3
-S219022BA600343C6000038081002880A1002038630E3C48007A2F
-S219022BBBFD80A10020386100301CA503E8388000084800815969
-S219022BD02C03FFFE418200BC814100287D6000A67D605B7839E8
-S219022BE5200000512004207C00012439200000380000807C09E8
-S219022BFA03A6612010003D600E007C0004AC7D398BA67D788B47
-S219022C0FA67C198BA67D788BA6392900104200FFE03C00040044
-S219022C244C00012C7C108BA64C00012C3D6004007C0004AC7D9B
-S219022C39788BA639200000380000807C0903A6612010003D6069
-S219022C4E0E007C0004AC7D398BA67D788BA67C198BA67D788BDD
-S219022C63A6392900104200FFE03C000C004C00012C7C108BA69E
-S219022C784C00012C3D600C007C0004AC7D788BA67D4803A64E10
-S219022C8D8000218001004C7C0803A68381003883A1003C83C1B0
-S219022CA2004083E10044382100484E8000209421FFE07C080285
-S219022CB7A693A1001493C1001893E1001C90010024380000002A
-S219022CCC3D2000033FC000033BA9381090093810901E37FC4854
-S219022CE1000A992C030000418200EC3D200003808938243D60F4
-S219022CF60003800B38203D2000033BE978E47C8422147C8400C6
-S219022D0B507FE3FB7838A004004800719D7FE3FB78388003FCC9
-S219022D20480004F9801F03FC7C030000408200303D2000038162
-S219022D356978E43C000BAD6000FACE7C0B000040820018813F80
-S219022D4A03F83C00DEAD6000DEAD7C090000418200283C6000B4
-S219022D5F0338631CF0480079513C600003386378E4388000004E
-S219022D7438A0040048007211480000583C60000338631AD83898
-S219022D8981000838A0000148000061800100082C0000004182AB
-S219022D9E00303C60000338631AF07FA4EB7838A00004480000FB
-S219022DB3413C6000033C80000338631B18388437F038A00002DA
-S219022DC84800002938000001901E37FC800100247C0803A6830F
-S219022DDDA1001483C1001883E1001C382100204E80002094212D
-S219022DF2FFD87C0802A69321000C934100109361001493810002
-S219022E071893A1001C93C1002093E100249001002C3D2000031E
-S219022E1C3D6000033B4937B87C7B1B787C9D23787CB92B783B36
-S219022E31CB36F8480009452C0300003B800004418200CC7C1EDF
-S219022E46D000418200B43D200003392978E4807E00007FFC4A48
-S219022E5B147F64DB78480079392C0300004082007C807E00109C
-S219022E707C03C8004082005C3803FFFF280000054181008C3DF0
-S219022E85600003396B1CD85400103A7D4B002E3D2000033929E0
-S219022E9A1CD87D4A4A147D4903A64E800420801F0000901D0056
-S219022EAF004800005CA01F0004813F0000B01D0004913D000041
-S219022EC44800004893FD0000480000403C60000338631C887FED
-S219022ED964DB78480077D94800002C807E00103BDE0018480093
-S219022EEE02DD7C1ED0007F9C1A144082FF543C60000338631CCB
-S219022F03B47F64DB78480077AD8001002C7C0803A68321000CD2
-S219022F1883410010836100148381001883A1001C83C10020838E
-S219022F2DE10024382100284E8000209421FBB87C0802A69301EC
-S219022F4204289321042C93410430936104349381043893A104A7
-S219022F573C93C1044093E104449001044C3D2000033D600003ED
-S219022F6C3B0936F83B2B37B87C7C1B787C9B2378480007FD2CCD
-S219022F810300003B4000007F1FC3783BC00004418202083C8055
-S219022F960003388478E43861000838A0040048006F0D3BA104E3
-S219022FAB083D6000033D200003934B381039291BE87FA3EB78F2
-S219022FC03880006C38A0000038C0000238E10420390000004841
-S219022FD50085DD3D4000037F83E3787F64DB787FA6EB78394A60
-S219022FEA131838A0000138E0000139000000392000004800854F
-S219022FFFD12C030000418201947C1FC800418200A480A104204F
-S2190230147FE3FB787FC4F37848000265380300012800000541C4
-S21902302981FFE03D600003396B1C705400103A7D4B002E3D206A
-S21902303E000339291C707D4A4A147D4903A64E8004203C600063
-S21902305303386378E43881000838A0040048006E514800013446
-S2190230683B400001807F00103BFF0018480001557FDE1A144BFB
-S21902307DFFFF8C7FE9C2783129FFFF7D294910381FFFE87C00FA
-S21902309248787FE948387D3F03784BFFFF6C3C60000338631C38
-S2190230A7004800760D4BFFFF5C2C1A0000418200E43C000BADBC
-S2190230BC3D6000036000FACE3D20DEAD3B8B78E46129DEAD9081
-S2190230D10B78E4913C03F87F83E378388003FC480001393D20C1
-S2190230E600033FE00003801F382481693820907C03FC7C0002E3
-S2190230FB143C6000037FC0585038631C14480080A92C030000B4
-S21902311041820088809F38243BA104247FC3F3787FA5EB78485D
-S21902312500A6897C7F1B794182002C83A104247FE3FB78480078
-S21902313AA9917C661B783C600003386315947FA4EB787FE5FB02
-S21902314F7848007565480000447FC3F3787F84E3787FA6EB78AB
-S21902316438A004004800A7B57C7F1B794182002883A104247F8A
-S219023179E3FB784800A94D7C661B783C60000338631C407FA478
-S21902318EEB787FE5FB78480075218001044C7C0803A683010487
-S2190231A3288321042C83410430836104348381043883A1043C5C
-S2190231B883C1044083E10444382104484E8000203803FFFF28D3
-S2190231CD0000054D8100203D600003396B1BD05400103A7D4B5E
-S2190231E2002E3D20000339291BD07D4A4A147D4903A64E800490
-S2190231F720386000044E800020386000084E80002038600000EC
-S21902320C4E800020386002004E800020388400035484F0BE7C6F
-S2190232218023782C00000038C0000038E000003884FFFF4081BF
-S2190232360044816300007C8A23787D68383038E7000168E900F5
-S21902324B102C0A00007D2AFE707D404A787C0050507D6B4378CE
-S2190232607C00FE707CC65A78386300047CE700383884FFFF411F
-S21902327581FFC47CC333784E8000209421FF707C0802A693013D
-S21902328A007093210074934100789361007C9381008093A1000C
-S21902329F8493C1008893E1008C900100947C7B1B78807B000801
-S2190232B47C9F23782C0300007CB82B78418200383881006038F6
-S2190232C9A000014BFFFB25801B000C2C000000418200148001B3
-S2190232DE00602C0000004182019848000010800100602C000087
-S2190232F300408201883D200003392978E43C600003809B000498
-S2190233087FBF4A1438631B2C480073A5813B00103809FFFF2898
-S21902331D000005418101483D600003396B1BA05400103A7D4B1F
-S219023332002E3D20000339291BA07D4A4A147D4903A64E80046E
-S21902334720801D00002C000000418200103D20000338891B383A
-S21902335C480000303D20000338891B40480000243C60000380D6
-S2190233719D000038631B484800733D480000EC7FA3EB784800AC
-S2190233869B6D7C641B783C60000338631B344800732148000003
-S21902339BD07FBEEB783BE000003F8000033FA000037C9EF8AE27
-S2190233B0387C1B4C48007301281F00044181000C387D1B5448A5
-S2190233C50072F13BFF0001281F00054081FFDC3C6000037FDD6B
-S2190233DAF37838631B58480072D5480000843C60000338631BAE
-S2190233EF5C480000883C60000338631B60480072B9881D0000C9
-S2190234047FBEEB782C0000007FBFEB78418200583F2000033B87
-S2190234194000003B80000A881E00002C00000A418200187FEB71
-S21902342EFB788C0B00012C00000A4082FFF87D7F5B787FC4F383
-S219023443789B5F000038791B64480072693BDF00019B9F000053
-S219023458881E00007FDFF3782C0000004082FFBC2C18000041BB
-S21902346D8200183C60000338631B604800723D3860000248001B
-S219023482022C801B00102C0000044182005438610008388000B5
-S2190234975038A00000480078892C0300003860FFFF418002041C
-S2190234AC38610008480072C12C0300004182FFC4880100082C76
-S2190234C100002E4082000C38600000480001E02C00005E4082E6
-S2190234D6000C38600003480001D0813B00103809FFFF280000E7
-S2190234EB05418101BC3D600003396B1BB85400103A7D4B002E96
-S2190235003D20000339291BB87D4A4A147D4903A64E8004208311
-S219023515FD0000386100087FA4EB78480085754800003083FD3C
-S21902352A0000386100087FA4EB7838A0000038C00000480083C3
-S21902353FE94800001483FD0000386100087FA4EB78480098396B
-S2190235542C0300004182013C801D00007FE002787C09FE707D46
-S2190235692302787C6348507C63FE707C6018F8546307FE5400E9
-S21902357E07BC7C63037848000128801D0000A17D000490010053
-S2190235935839210058B1690004380100087D3A4B789001006840
-S2190235A83BC000003F6000033BE100643B810068806100687FFE
-S2190235BDE4FB787F85E37838DB1B544800835D2C0300004182A0
-S2190235D200B4881F00037C1DF1AE3BDE0001281E00054081FF22
-S2190235E7D4480000C03C6000037FBEEB7838631B6C480070BD16
-S2190235FC48000044880100083BE100082C000000418200287FDC
-S219023611C4F3787FEBFB78880B0000980400008D2B00013884ED
-S21902362600012C0900004082FFEC7C9E23783800000A981E00F8
-S21902363B003BDE0001380000003C600003981E000038631B987E
-S21902365048007065386100083880005038A00000480076C52C11
-S2190236650300003860FFFF4180004038610008480070FD2C032A
-S21902367A00004082FF8448000028A01A000481210058B01D00FA
-S21902368F04913D000038600004480000143C60000338631B5CA4
-S2190236A44800701138600001800100947C0803A68301007083EF
-S2190236B9210074834100788361007C8381008083A1008483C154
-S2190236CE008883E1008C382100904E8000209421FFF07C080267
-S2190236E3A693C1000893E1000C900100147C7E1B782C1E0001CC
-S2190236F87C9F2378418100143C60000338631A98480012B548E7
-S21902370D000054480000692C030000418200483C6000033C8006
-S219023722000380BF0004386336183884368848007CBD7C631B67
-S219023737794182001C8003000C7FC3F3787FE4FB787C0803A6DF
-S21902374C4E800021480000103C60000338631AAC4800126180DF
-S2190237610100147C0803A683C1000883E1000C382100104E8017
-S21902377600209421FFE07C0802A6934100089361000C93810067
-S21902378B1093A1001493C1001893E1001C900100243D200003B9
-S2190237A0800931E82C0000004082009C3FE00003807F37EC3865
-S2190237B5000001900931E83C63FFFF3C80000148009ED57C6450
-S2190237CA1B79418200183C60000338631A4448006EDD386000B1
-S2190237DF00480000683F6000033F40000338600000389B381C3B
-S2190237F438BA382048009F493FA000033F800003387D38243852
-S2190238099C382848009F69809B381C80BA382080DC38283C60FE
-S21902381E000380FD382438631A6C48006E8D813D3824801F375E
-S219023833EC3D2900017C0900503D600003900B382C3860000119
-S219023848800100247C0803A6834100088361000C83810010833F
-S21902385DA1001483C1001883E1001C382100204E8000209421A2
-S219023872FFE07C0802A693A1001493C1001893E1001C9001005A
-S219023887243D400003394A19F438A0000238C0000038E0000007
-S21902389C390100083920000148007D292C030000408200143C45
-S2190238B16000033863178C48001105480000E03D6000033D20D7
-S2190238C6000380A93824808B38203FA00003807D382C7C852097
-S2190238DB50480065D583BD382C3BC000003BE000004800000CF1
-S2190238F03BFF00013BBD01003D200003800938245400C23E7C73
-S2190239051F004040800028881D00002C0000FF4182FFDC806110
-S21902391A00087FA4EB7848006E792C0300004082FFC83BC00021
-S21902392F012C1E0000408200183C6000038081000838631A14E6
-S21902394448006D71480000543D20000380093804807D00147CF3
-S2190239590300404180001C80BD00183D200003816937EC7C03F1
-S21902396E2A147C005840418000143C60000338631A2C48006DE1
-S2190239833548000018809D001048006525801D001C3D2000037B
-S2190239989009380C800100247C0803A683A1001483C10018834D
-S2190239ADE1001C382100204E8000209421FFD87C0802A693410E
-S2190239C20010936100149381001893A1001C93C1002093E1006D
-S2190239D7249001002C3D400003394A19F438A0000238C0000011
-S2190239EC38E00000390100083920000148007BD52C0300004004
-S219023A018200143C6000033863178C48000FB1480001843D60C4
-S219023A1600033D20000380A93824800B38203FA000037F650003
-S219023A2B50807D382C7F64DB784800647D83DD382C3BA00000D0
-S219023A403BDE02003BE000024800000C3BFF00013BDE01003F4A
-S219023A55400003801A38245400C23E7C1F004040800040881E47
-S219023A6A00002C0000FF4182FFDC806100087FC4F37848006D2B
-S219023A7F1D2C0300004082FFC83C6000038081000838631A00F9
-S219023A944800771D2C030000418200F83BA000012C1D000040EB
-S219023AA98200183C6000038081000838631A1448006BFD4800FE
-S219023ABE00D83B81000C807E0010809E00187F85E37848009CC5
-S219023AD3DD7C7F1B794182002883A1000C7FE3FB7848009FE5AF
-S219023AE87C661B783C600003386319947FA4EB787FE5FB7848C1
-S219023AFD006BB97FC3F378388000FF38A001004800647D809A09
-S219023B1238247F63DB787F85E37848009C917C7F1B79418200E0
-S219023B272C83A1000C7FE3FB7848009F997C661B783C600003BD
-S219023B3C386319947FA4EB787FE5FB7848006B6D480000483DDB
-S219023B512000038089382C80BA38247F63DB787F86E378480055
-S219023B669DB97C7F1B794182002883A1000C7FE3FB7848009F87
-S219023B7B517C661B783C600003386319B47FA4EB787FE5FB7804
-S219023B9048006B258001002C7C0803A683410010836100148318
-S219023BA581001883A1001C83C1002083E10024382100284E80F0
-S219023BBA00209421FFA07C0802A69381005093A1005493C1000F
-S219023BCF5893E1005C90010064380000007C7D1B787C9C237846
-S219023BE43D20000390010044392917309001003C386100083841
-S219023BF980006638A0000138C0000038E100383901003C4800EA
-S219023C0E79A53D200003392919D8386100203880006C38A00014
-S219023C230138C0000038E1004039010044480079813D400003F3
-S219023C387FA3EB787F84E378394A131838A0000238C1000838CC
-S219023C4DE000023900000039200000480079752C0300004082C0
-S219023C6200143C6000033863178C48000D5148000104800100E1
-S219023C773C2C00000041820010800100442C000000408200142F
-S219023C8C3C600003386319E048000D29480000DC8061003848E6
-S219023CA1009A5D7C7C1B794082002080610038800100407C63E9
-S219023CB602143863FFFF48009A417C7C1B794182004483A10069
-S219023CCB387F83E37848009DF97C651B783C600003386317E8BD
-S219023CE07FA4EB78480069D13D2000033D6000033C60000380A1
-S219023CF589381C80AB382038631808480069B548000070808179
-S219023D0A0038800100407C8323787C8402143884FFFF48009F53
-S219023D1F912C030000418200143C600003386319184800698550
-S219023D3448000040806100388081004038A1004848009A697CA9
-S219023D497C1B794182002883A100487F83E37848009D717C6662
-S219023D5E1B783C600003386319947FA4EB787F85E37848006939
-S219023D7345800100647C0803A68381005083A1005483C1005875
-S219023D8883E1005C382100604E8000209421FF187C0802A6932D
-S219023D9D4100D0936100D4938100D893A100DC93C100E093E18D
-S219023DB200E4900100EC380000007C7D1B787C9C23783D2000C0
-S219023DC703900100C4392916F49001009C900100A4900100AC7D
-S219023DDC900100B4900100BC386100083880006238A00001386D
-S219023DF1C0000038E100983901009C480077B53D200003392939
-S219023E061708386100203880007238A0000138C0000038E100B4
-S219023E1BA0390100A4480077913D2000033929171C38610038F7
-S219023E303880006538A0000138C0000038E100A8390100AC4899
-S219023E4500776D38E100B03D2000037CFE3B78392917303861E5
-S219023E5A00503880006638A0000138C00000390100B448007760
-S219023E6F453D2000033929174C386100683880006C38A00001CF
-S219023E8438C0000038E100B8390100BC480077213D20000339EA
-S219023E99291764386100803880007338A0000138C0000038E13B
-S219023EAE00C0390100C4480076FD3D4000037FA3EB787F84E394
-S219023EC378394A178038A0000238C1000838E00006390100C856
-S219023ED839200001480076F12C030000408200143C60000338E9
-S219023EED63178C48000ACD480004988001009C2C0000004182A4
-S219023F02001C800100BC2C00000041820010800100C82C0000D6
-S219023F1700408200143C600003386317A048000A99480004642C
-S219023F2C800100C4814100B82C00000040820008914100C03DF5
-S219023F4120000380093824816100C07D2A02143929FFFF7D29F7
-S219023F5603963F4000037D2901D67C095840912100B840800070
-S219023F6B143C600003386317BC4800674148000414800100B494
-S219023F802C00000041820070806100B0480097717C7C1B794019
-S219023F95820020806100B0800100C07C6302143863FFFF4800C6
-S219023FAA97557C7C1B794182004483A100B07F83E37848009B68
-S219023FBF0D7C651B783C600003386317E87FA4EB78480066E513
-S219023FD43D2000033D6000033C6000038089381C80AB3820381A
-S219023FE9631808480066C94800039C3FE0000380810098801F81
-S219023FFE38047C0400404180001C800100C03D2000038169370C
-S219024013EC7C0402147C005840418000283C600003386318249C
-S2190240284800668D3D2000033C600003809F380480A937EC3863
-S21902403D63180848006675806100C8480067292803000F408145
-S21902405200183C60000338631850388000104800665548000382
-S21902406728800100B42C0000004082002C808100B87FC3F37860
-S21902407C480003392C030000408200183C600003808100B8380B
-S21902409163188048006621480002F43F8000033D20000380BCAD
-S2190240A63824800938203FA000037F650050807D382C7F64DB8C
-S2190240BB7848005DF5801C382483FD382C5409C23F3BA00000C2
-S2190240D03B800000418200883FC00003881F00002C0000FF41B9
-S2190240E5820060806100C87FE4FB78480066A92C030000408216
-S2190240FA004C800100B42C00000041820014813F0010800100D5
-S21902410FB07C09000040820214813F0018800100B87C090000F1
-S21902412440820214808100C8387E18FC480070812C030000416B
-S2190241398202543B8000014800001C801A38243BBD000154002F
-S21902414EC23E7C1D00403BFF01004180FF842C1C0000814100F3
-S219024163C0806100B04082004C3D200003800938243D600003FC
-S2190241785400C23E7C1C004083EB382C3BA000004800001C3DB1
-S21902418D200003800938243BBD00015400C23E7C1D00403BFFAE
-S2190241A2010040800010881F00002C0000FF4082FFDC7C835270
-S2190241B7143884FFFF48009AF12C030000418200143C600003A6
-S2190241CC38631918480064E5480001B838A100CC806100B080C3
-S2190241E18100B87CBE2B78480095C57C7C1B793BA000014182DF
-S2190241F6002C83A100CC7F83E378480098C97C661B783C60007A
-S21902420B037FA4EB783863194C7F85E3784800649D3BA000008B
-S2190242202C1D000041820044806100B08081009880A100C07FA8
-S219024235C6F378480096E57C7C1B794182002883A100CC7F8310
-S21902424AE3784800987D7C661B783C600003386319707FA4EB5A
-S21902425F787F85E378480064517FE3FB783880000038A0010009
-S21902427448005D15808100C87FE3FB784800654D800100A48136
-S2190242892100B02C000000913F001040820020800100B42C00F9
-S21902429E00004182000C812100B0480000108121009848000009
-S2190242B308812100A0800100AC913F00142C0000004082001096
-S2190242C83D2000038009380C48000008800100A8901F001C80E9
-S2190242DD0100B83D20000380893824901F00187F63DB787FC507
-S2190242F2F378480094B97C7C1B794182004C83A100CC7F83E340
-S21902430778480097C17C661B783C600003386319947FA4EB78A0
-S21902431C7F85E37848006395480000683C600003386318A848F4
-S219024331006385480000583C600003386318D44800637548005A
-S21902434600483D2000038089382C80BA38247F63DB787FC6F343
-S21902435B78480095C17C7C1B794182002883A100CC7F83E3786C
-S219024370480097597C661B783C600003386319B47FA4EB787F78
-S21902438585E3784800632D800100EC7C0803A6834100D0836152
-S21902439A00D4838100D883A100DC83C100E083E100E438210092
-S2190243AFE84E8000203D20000380E938243D600003814B381C37
-S2190243C43D2000037C073A14810938207D4A02147D4953787CE0
-S2190243D90940404080007054E0F0BE7C0603785407103A800A01
-S2190243EE00002C00FFFF4182004C7C095000418200147C0950F9
-S219024403507C0016707C002040408000587D4953787C094040C1
-S2190244184080002054CB103A7D295A147C0940404080001080D6
-S21902442D0900002C00FFFF4082FFEC7D2A4B78480000087D4A12
-S2190244423A147C0A40404180FFA47C095000418200207C095019
-S219024457507C0016707C002040418000109123000038600001FD
-S21902446C4E800020386000004E8000209421FFE07C0802A6936D
-S21902448161000C9381001093A1001493C1001893E1001C9001B9
-S21902449600243D200003800938243D600003814B381C3D200084
-S2190244AB0383C938207C0002147FEA02147C1FF0407FE4FB789C
-S2190244C03F600003408000883F8000033FA00003801F00002C87
-S2190244D500FFFF4182005C7C04F80041820010387C16DC7FE559
-S2190244EAFB78480061C97C1FF0407FE4FB7840800034801F009D
-S2190244FF002C00FFFF41820028801D38245400F0BE5409103AEA
-S2190245147C844A147C04F04040800010800400002C00FFFF40BF
-S21902452982FFEC7C9F237848000014801B38245400F0BE5400AA
-S21902453E103A7FFF02147C1FF0404180FF887C04F80041820035
-S219024553143C600003386316DC7FE5FB78480061558001002492
-S2190245687C0803A68361000C8381001083A1001483C1001883EF
-S21902457DE1001C382100204E8000209421FFE87C0802A69381E2
-S219024592000893A1000C93C1001093E100149001001C3FA0004D
-S2190245A7033D20000381693820801D38243C6000037FE05850B4
-S2190245BC3863166C480060F5801D38243BC000005409C23F3F98
-S2190245D1800003418200547FFDFB787FDFF3787F9EE3783F8045
-S2190245E60003881D00002C0000FF4182002080BD001080DD0059
-S2190245FB1480FD0018811D001C387C16B07FA4EB78480060A9F0
-S219024610801E38243BFF00015400C23E7C1F00403BBD010041F0
-S21902462580FFC48001001C7C0803A68381000883A1000C83C1EC
-S21902463A001083E10014382100184E8000209421FFB87C08028B
-S21902464FA69321002C93410030936100349381003893A1003CE1
-S21902466493C1004093E100449001004C7C7D1B787C9C23783B97
-S219024679E000003D2000033929150893E1002038610008388079
-S21902468E006638A0000038C0000238E100203900000048006FAF
-S2190246A3113D4000037FA3EB787F84E378394A131838A00002FF
-S2190246B838C1000838E00001390000003920000048006F052C52
-S2190246CD030000418202C03C6000033863153448006AD52C0310
-S2190246E20000408200143C6000033863156448005FC54800027D
-S2190246F79C3C6000033863157048005FB5800100202C00000023
-S21902470C4182006C3D200003808938283D600003800B38243DD5
-S2190247212000033884FFFC8069381C7C8401D63BA100247C0012
-S21902473602147C6302147FA5EB784800906D7C7C1B797FBEEBDC
-S21902474B784182003C83A100247F83E378480093717C661B7875
-S2190247603C600003386315947FA4EB787F85E37848005F454841
-S2190247750000143C600003386315BC48005F353BC100243F408E
-S21902478A0003839A38243C0000027F9C00003F20000383B93868
-S21902479F2C4FFEEB827C000026540007FE7C0000D07C0900F854
-S2190247B47F9C00385529039C7F9C4B787FA3EB78388000003826
-S2190247C9A00100480057BD3D2000033F60000339691604801B7E
-S2190247DE381C81491604810B0004939D0018915D0000911D0013
-S2190247F304901D0014901D00103BBD01007FA3EB7838800000F2
-S21902480838A001004800577D3D600003801B381C810B160C3929
-S21902481D2B160C80E9000C81690004814900087C00E214939D5B
-S2190248320018911D0000917D0004915D000890FD000C901D0056
-S21902484714901D00103BBD01007FA3EB783880000038A0010075
-S21902485C4800572D3D2000038009161C3969161C812B00088150
-S2190248714B0004A10B000C913D0008901D0000915D0004B11DE1
-S219024886000C880B000E3F800003981D000E817A3824801C38B9
-S21902489B207D2B5A147C090050901D0014917D0018901D001052
-S2190248B03BBD01007FA3EB783880000038A00100480056C980F6
-S2190248C51C3820809A38243D600003814B162C7F640050392BA8
-S2190248DA162CA109000C8009000481690008915D0000901D00B0
-S2190248EF04917D0008B11D000C909D0018937D0010937D001430
-S2190249047F63DB787FC5F37848008EA13BFF00013BFF00017C4A
-S2190249197C1B793BFF00013BFF00014182002C83A100247F83C3
-S21902492EE378480091997C661B783C600003386315947FA4EB3A
-S219024943787F85E37848005D6D480000448099382C7F63DB7831
-S21902495857E5402E7FC6F37848008FBD7C7C1B7941820028835B
-S21902496DA100247F83E378480091557C661B783C60000338632F
-S219024982163C7FA4EB787F85E37848005D298001004C7C0803C0
-S219024997A68321002C83410030836100348381003883A1003CE6
-S2190249AC83C1004083E10044382100484E8000209421FFF87C0C
-S2190249C10802A69001000C7C641B783C600003386314E04800A4
-S2190249D65CE13C6000033C8000033CA000033863361838843670
-S2190249EB8838A5150048006B3D8001000C7C0803A6382100082B
-S219024A004E8000203860001C4E8000209421FFE87C0802A693AF
-S219024A15A1000C93C1001093E100149001001C7C7D1B78813DF5
-S219024A2A000483C900044800002C73E00012418200107FA3EB63
-S219024A3F787FE4FB784800004973E000084182000C7FA3EB78CD
-S219024A54480001A9B3FE0010A01E00107000001A541F043E2C5A
-S219024A691F00004082FFC88001001C7C0803A683A1000C83C14B
-S219024A7E001083E10014382100184E8000209421FFE87C080213
-S219024A93A69381000893A1000C93C1001093E100149001001C6C
-S219024AA87C7D1B7883DD000483FE0018A01F0000700090002C7E
-S219024ABD001000408200683B9E0028813D0000801E001081694C
-S219024AD200247C00F850816B00085400F87AA13F00007C9C002E
-S219024AE72E7FA3EB7838A000007D6803A67129EFFFB13F000022
-S219024AFC4E800021A01F0000700920004182000C83FE001048AF
-S219024B110000083BFF0008A01F0000700090002C001000418280
-S219024B26FFA493FE00188001001C7C0803A68381000883A1002D
-S219024B3B0C83C1001083E10014382100184E8000209421FFE88B
-S219024B507C0802A693A1000C93C1001093E100149001001C81C3
-S219024B652300048169000C83EB00047C188AA654000FFE2C0054
-S219024B7A000041820028812B0004A00B00022C000000408100EA
-S219024B8F187C004BAC7C0004AC3400FFF0392900104181FFF00D
-S219024BA42C050000408100387C9E23787CBD2B78807E00002C10
-S219024BB90300004182001880BE00047FE4FB78480052E9801EC9
-S219024BCE00047FFF021437BDFFFF3BDE00084082FFD880010006
-S219024BE31C7C0803A683A1000C83C1001083E100143821001800
-S219024BF84E8000209421FFE87C0802A693A1000C93C1001093B4
-S219024C0DE100149001001C7C7D1B7883DD000483FE001C480014
-S219024C220048813D000093FE000C816900247FA3EB78800B00B5
-S219024C3704A09F00027C0803A64E800021A01F00006000800061
-S219024C4CB01F0000A13F0000712020004182000C83FE00144840
-S219024C610000083BFF0008A01F0000700090002C00100041822F
-S219024C76FFB093FE001C8001001C7C0803A683A1000C83C10088
-S219024C8B1083E10014382100184E8000209421FFD87C0802A66E
-S219024CA0930100089321000C93410010936100149381001893F1
-S219024CB5A1001C93C1002093E100249001002C83C300047C98FF
-S219024CCA237883BE00087CBB2B78A01D00007CD933787009805A
-S219024CDF007CFA3B78418200447FBFEB783F800003A01F000067
-S219024CF4700920004182000C83FE0010480000083BFF00087C9D
-S219024D091FE8004082000C387C125C480059A1A01F000070091D
-S219024D1E80004082FFD07FFDFB78A01D00007009200041820060
-S219024D3310801E00107C0903784800000C381D0008813E001026
-S219024D48901E00087C09E8502C1B00005400F87A393E0028B37D
-S219024D5D3D00027F49012E83FD0004408100307F1EC3787F7CBC
-S219024D72DB78809E000080BE00047FE3FB7848005131801E0035
-S219024D8704379CFFFF3BDE00087FFF02144082FFE07C188AA621
-S219024D9C54000FFE2C00000041820028813D0004A01D00022CD6
-S219024DB1000000408100187C004BAC7C0004AC3400FFF03929E9
-S219024DC600104181FFF0A01D00006000DC00B01D0000800100C9
-S219024DDB2C7C0803A6830100088321000C83410010836100145B
-S219024DF08381001883A1001C83C1002083E10024382100284E90
-S219024E058000208123000481690008A06B000054638BFE686341
-S219024E1A00014E800020688401003004FFFF7C6021104E800093
-S219024E2F208123000481690004800B000060000030900B0000FB
-S219024E444E8000208123000481690004800B0000540007329026
-S219024E590B00004E8000209421FFD87C0802A69321000C9341F8
-S219024E6E0010936100149381001893A1001C93C1002093E100AC
-S219024E83249001002C83230008839900047FDE9AA677DEFFFF74
-S219024E983C800003388432303860000838A000064800177D7F48
-S219024EAD788AA6577B0FFE39200000380000807C0903A66120A2
-S219024EC210003CC00E007C0004AC7D398BA67CD88BA67C198B02
-S219024ED7A67CD88BA6392900104200FFE03D2004007C0004AC74
-S219024EEC7D388BA63FA000033CC000023CE000033D200003382D
-S219024F01C6527438E7D66C391D3818392978C83860001C3880F3
-S219024F1600007F25CB7848004321807D38183BFE3C004800439F
-S219024F2B3D3860001C480047493860001C480045F1801E0A00C7
-S219024F403B5E0A005400073293FC0000901E0A00935C00047F6C
-S219024F55E3FB783880000038A000A44800502938C000047CC9B4
-S219024F6A03A62F9B0000391E2C00395E2C203D2000033D600055
-S219024F7F0338E0000038009000915C001C39294910396B60D09B
-S219024F94911C0010911C0008911C0018915C0014915C000CB020
-S219024FA9EA0002912A0004B00A0000392905F0394A0008420063
-S219024FBEFFECA40AFFF87D09437860002000B00A000039400053
-S219024FD3047D4903A6399F007238000000B00900029169000414
-S219024FE8B0090000396B05F0392900084200FFEC7D284B78A4B8
-S219024FFD08FFF83B60000160002000B0080000A13E09523BA0B0
-S219025012001061290003B13E0952A01E0950390005F0540004FE
-S2190250273AB01E0950A13E09543B80FFFF7129FFFDB13E095435
-S21902503CA01E09623D40DEBB7000FFCFB01E0962A13E096061F9
-S2190250514A20E37129FFCFB13E0960A01E096439600000600012
-S2190250660030B01E0964A13E09523860888861290A00B13E0955
-S21902507B52A01E09503880000F7000F5FFB01E0950813E0AECA9
-S21902509038C005EE5529002E913E0AEC801E0AEC38E00040605C
-S2190250A500003D901E0AEC813E0AEC38002C20552906B0913ED2
-S2190250BA0AEC937E0030B01F000039202C00B13F00029BBF0003
-S2190250CF049BBF0005B11F0006939F0030915F0034917F0038BE
-S2190250E4917F003C917F0040B07F0044B17F0044B09F0046B1E7
-S2190250F97F0048B0DF004AB0FF004CB11F004EB11F005038008A
-S21902510E0006B17F00587C0903A6B17F005A3CA00003B17F0030
-S2190251235CB17F005E38A532367D8963788C05FFFF9809000030
-S219025138392900014200FFF438000000B01F0078B01F0094B031
-S21902514D1F0096B01F0098B01F009AB01F009EB01F00A0B01F16
-S21902516200A239200001B13E09C0A01E09C070060001418200BC
-S219025177187FC9F378A00909C0700A00014082FFF87D3E4B782D
-S21902518C3800FFFFB01A00103920001AB13A0014396000003CB0
-S2190251A1001088917A00046000000C901A00003920D555B13AC7
-S2190251B6000E3800280AB01A0008392000903D60FA10992B003F
-S2190251CB00A01E096260000001B01E0962A13E09605529043CFF
-S2190251E0B13E0960419E00103D6002007C0004AC7D788BA681FA
-S2190251F53900003C800003816900247F23CB78800B000038846C
-S21902520A32307C0803A64E800021386000018001002C7C08033D
-S21902521FA68321000C83410010836100148381001883A1001CF5
-S21902523483C1002083E10024382100284E8000209421FFF87CDB
-S2190252490802A69001000C4BFFF7BD3860001C48004421386005
-S21902525E001C480042C98001000C7C0803A6382100084E8000DC
-S219025273209421FFF87C0802A69001000C3860001C480041410C
-S219025288386000038001000C7C0803A6382100084E80002094D2
-S21902529D21FF207C0802A67D800026934100C8936100CC9381F6
-S2190252B200D093A100D493C100D893E100DC900100E491810005
-S2190252C7C43BA000007C7B1B787C9A23783D2000033BC910403D
-S2190252DC93A1009893A100B0386100083880000038A0000C4881
-S2190252F1004C993D200004814919643B8100183800000C396063
-S21902530600013D200003B0010010B161000E91410008B3A1001B
-S21902531B0C392910987F83E3783880007638A0000038C0000203
-S21902533038E1009039000000480062793D200003392910A038B2
-S2190253456100303880007238A0000038C0000238E100943900D9
-S21902535A0000480062553D200003392910B0386100483880001D
-S21902536F6238A0000138C0000038E100983901009C480062318D
-S2190253843D200003392910C0386100603880006D38A00001384C
-S219025399C0000138E100A0390100A44800620D3D200003392927
-S2190253AE10E0386100783880006838A0000138C0000138E100D7
-S2190253C3A8390100AC480061E93D4000037F63DB787F44D378EB
-S2190253D87F86E378394A10F838A0000138E00005390100B039B5
-S2190253ED200001480061DD2C0300003BE00000418202888001E5
-S21902540200AC2C0000004182002C806100A838810008480079BC
-S219025417752C030000408200183C600003808100A83863110403
-S21902542C4800528948000254800100A42C00000041820074809B
-S2190254416100A03C8000033884111C480053B52C030000408265
-S219025456000C3BE0000148000054806100A03C80000338841169
-S21902546B24480053952C030000408200283D2000038009381483
-S2190254803BE000002C000000408200283C6000033863112C4820
-S219025495005221480001EC3C600003808100A0386311544800CB
-S2190254AA520D480001D82E1F0000409200DC806100B02C0300AB
-S2190254BF004082001C3C60000338631168480051E97FC3F37811
-S2190254D4480051E1480001AC38C100B47CDE33783881000838A2
-S2190254E9A00001480066257C7C1B7940800028806100B483A106
-S2190254FE00B0480069BD7C651B783C6000033863117C7FA4EB2B
-S21902551378480051A14800016C3C600003808100903863BCB8D6
-S219025528480001A93D2000043B491A7C3BA000003B6100B84883
-S21902553D00000C7F9DD9AE3BBD0001281D000341810018480040
-S21902555201A97C7C1B794080FFE8801A0110900100B42C1C0028
-S2190255670040800028806100B44800694D7C641B783C6000039B
-S21902557C38631194480051357FC3F3784800671D480000F82C20
-S2190255911F0001408200143C600003386311B84800511548000F
-S2190255A600E04800010D800100942C00000041820054800100DA
-S2190255BB9C2C000000408200143C600003386311E4480050E986
-S2190255D0480000A883A100984800000C987D00003BBD00014869
-S2190255E50001157C631B794080FFF03C6000038081009838639F
-S2190255FA12087FA5EB78480050B5480000743C8000033884125E
-S21902560F20386100B938A00003480052492C0300003BA100B88C
-S219025624408200143C600002386356F8480006DD4800004488CE
-S2190256390100B82C00005340820028893D00013929FFD028090A
-S21902564E0009418100183C60000280810098386356F8480001F4
-S219025663C9480000143C600003808100B8386312244800504104
-S2190256784092000C386100B448006625800100E4818100C47C71
-S21902568D0803A6834100C8836100CC838100D083A100D483C104
-S2190256A200D883E100DC7D808120382100E04E8000203D2000B2
-S2190256B70439291A7C8009010C396900049009010891690104FE
-S2190256CC4E8000203D600004392B1A7C394000003800010090F7
-S2190256E16B1A7C914901189009010C90890114914901084E8034
-S2190256F600209421FFF07C0802A693C1000893E1000C9001003B
-S21902570B143D2000043BE91A7C83DF01082C1E00004080000CD2
-S2190257203860FFFF480000EC408200C4801F01142C00000041FC
-S219025735820038817F01183D200003392932387C8958AE396BAA
-S21902574A00013C600003917F01183863103848004F5D801F0103
-S21902575F18280000064081000893DF01183D2000043BE91A7C79
-S219025774801F010C2C0000FF41810020801F01142C000000413F
-S21902578982FF983C6000033863103C48004F214BFFFF883D207F
-S21902579E000481291A7C381F00047C0303783880010038BF01A5
-S2190257B3107D2803A6901F01044E8000212C030000907F010C8E
-S2190257C8907F010841810020801F01142C0000004182FF483CA5
-S2190257DD6000033863103C48004ED14BFFFF383D400004394A7A
-S2190257F21A7C812A0108816A01043929FFFF912A0108886B004A
-S21902580700396B0001916A0104800100147C0803A683C10008D2
-S21902581C83E1000C382100104E8000209421FF707C0802A692C7
-S21902583181006092A1006492C1006892E1006C93010070932191
-S2190258460074934100789361007C9381008093A1008493C10076
-S21902585B8893E1008C900100947C7D1B787C9523783B600000B1
-S2190258703A8000013B2000003AC000003AE0FFFF480002602C1E
-S219025885050053418200183C60000338630ED87F64DB78480036
-S21902589A4E1D480002547FA803A63B7B00024E80002138A10099
-S2190258AF5838000000547C063E7CBA2B78900100587FA3EB78F2
-S2190258C438800001480002697C7F1B79408000183C600003381E
-S2190258D9630F047F64DB7848004DD54800020C381CFFD02800FC
-S2190258EE00093B7B0001418101AC3D600003396B1010540010A7
-S2190259033A7D4B002E3D200003392910107D4A4A147D4903A6E2
-S2190259184E8004207FA3EB78389CFFD17F45D378480002092CCA
-S21902592D1400007C7E1B78381BFFD17FD8F3787F60E214418240
-S219025942002C2C1500004182001C7F3EA8503C60000338630FFF
-S219025957287F24CB7848004D59480000083B2000003A800000D3
-S21902596C3D200003816938047FDECA147D39F0507C1748107C01
-S2190259810001107C0003B87D2900787C1E58407EE000387C1749
-S2190259964B78418000143D200003800937EC7C1E0040408100B6
-S2190259AB183C60000338630F407FC4F37848004CFD4800013483
-S2190259C0381F002E7FFC00507FE9FB782C0900007F7BFA143B28
-S2190259D5FFFFFF408100307F5CD3787FA3EB78388000017F8560
-S2190259EAE378480001457FE0FB782C000000987E00003BDE008B
-S2190259FF013BFFFFFF4181FFDC7FA3EB783880000138A00000A0
-S219025A144800011D88A1005B7C6318F85466063E7C0628003BBA
-S219025A297B000190A10058418200183C60000338630F7C7F0439
-S219025A3EC37848004C75480000AC7D39F0507C09B0107C00015C
-S219025A53107C0003B87D2900787EC000387C164B78480000546B
-S219025A687FA3EB78209C003B7F45D378480000BD7C7E1B783DC8
-S219025A7D2000033C60000393C9380C38630FB87FC4F3787EE538
-S219025A92BB787EC6B37848004C1D480000543C60000338630FC0
-S219025AA7E07F64DB787F85E37848004C054800003C7F7FDB7800
-S219025ABC7FBEEB78480000083BFF00017FC803A64E8000212C98
-S219025AD103000A4082FFF07FDDF3787FFBFB787FA803A64E80A9
-S219025AE600217C651B794181FD98800100947C0803A682810072
-S219025AFB6082A1006482C1006882E1006C830100708321007422
-S219025B10834100788361007C8381008083A1008483C100888362
-S219025B25E1008C382100904E8000209421FFE07C0802A693616C
-S219025B3A000C9381001093A1001493C1001893E1001C9001004A
-S219025B4F247C9E23787FC0F3782C0000007C7B1B787CBC2B7826
-S219025B643BA000003BDEFFFF408101787F6803A64E8000217FFB
-S219025B796803A6547F063E4E800021393FFFD0381FFFBF212953
-S219025B8E0009392000007D29491420000005380000007C0001BC
-S219025BA3147D270379546B063E3920000040820010381FFF9F8F
-S219025BB82800000541810008392000012C09000041820104394A
-S219025BCD2BFFD0380BFFBF7D2A4B787C0803785529063E540042
-S219025BE2063E21290009392000007D2949142000000538000057
-S219025BF7007C0001147D2703793920000040820010380BFF9FD5
-S219025C0C2800000541810008392000012C090000418200B0394A
-S219025C213FFFD05520063E2800000957BD402E4181000C7D237F
-S219025C364B7848000030381FFF9F280000054181000C387FFF71
-S219025C4BA94800001C381FFFBF393FFFC9200000057C00011029
-S219025C607C0003B87C0348385540063E280000094181000C7D9D
-S219025C7549537848000030380BFF9F280000054181000C392B47
-S219025C8AFFA94800001C5500063E392BFFC9200000057C00018B
-S219025C9F107C0003B87C094838546020362C1C00007C034B7809
-S219025CB47FBD1B784182001C801C00007C001A14901C000048EC
-S219025CC900000C3860FFFF480000187FC0F3782C0000003BDECE
-S219025CDEFFFF4181FE907FA3EB78800100247C0803A683610021
-S219025CF30C8381001083A1001483C1001883E1001C38210020E8
-S219025D084E8000209421FFF87C0802A69001000C3C6000033845
-S219025D1D630EBC480049958001000C7C0803A6382100084E802E
-S219025D3200209421FFF07C0802A693C1000893E1000C900100F8
-S219025D47143D6000033D200003392936183BEB36147C1F4840E9
-S219025D5C418000207D3E4B78813F00003BFFFFFC7D2803A64E3B
-S219025D718000217C1FF0404080FFEC800100147C0803A683C1F9
-S219025D86000883E1000C382100104E8000209421FFF87C080200
-S219025D9BA69001000C3D200003800935942C0000004182000CFC
-S219025DB090030094480000243D2000039069385C480015417C3D
-S219025DC51602A628007A124081000C38007A127C1603A6800103
-S219025DDA000C7C0803A6382100084E8000204E8000203860009F
-S219025DEF004E8000209421FFF07C0802A693E1000C90010014B5
-S219025E04480005AD3D20000338893504800400083BE000002C5B
-S219025E19000000418200307FE3FB787C9F2378809F000080BF91
-S219025E2E000480DF000888FF000C3BFF00104800047D801F00A8
-S219025E43082C0000004082FFE0800100147C0803A683E1000C3C
-S219025E58382100104E8000204E8000209421FFF87C0802A69081
-S219025E6D01000C480000ED38007A127C1603A68001000C7C08C7
-S219025E8203A6382100084E8000203D20002F6129AF087C634917
-S219025E97D63C00431B6000DE837C0300967C63FE707C009670DA
-S219025EAC7D6300507D3602A67D605B782C000000396BFFFF4C85
-S219025EC1810020394BFFFF7C1602A67C0900004182FFF87C09A4
-S219025ED603787D605B782C0000007D4B53784181FFE04E800057
-S219025EEB209421FFF87C0802A69001000C3D20FF0061290930E7
-S219025F0038000001B00900007C0006ACA00900007C0006AC543A
-S219025F1500AAFF38600000418200302060003A3D60000354602E
-S219025F2A103A396B32407D6B002E3D2000033929332C7C8900BF
-S219025F3F2E7D6803A64E800021546307FA8001000C7C0803A629
-S219025F54382100084E8000203D20000339493240390000407C99
-S219025F690A402E3D20000239295DEC7C00480041820018800A71
-S219025F7E00403D20000339299E087C004800408200343D200048
-S219025F930239295EEC3D600003380000007D2A412E6000DEAD6B
-S219025FA8396B332C7C0B412E3D20000339293418380000007C22
-S219025FBD09412E3D600003800B1D643D20000339291D287D29F7
-S219025FD202147D2903A64E8004203D20FF0061290014800900D9
-S219025FE7007C0006AC64000001900900007C0006AC480000E814
-S219025FFC3D20FF0061290200A00900007C0006AC60000008B0B2
-S2190260110900007C0006AC480000C83D20FF0061290200A0099B
-S21902602600007C0006AC60000004B00900007C0006AC4800009D
-S21902603BA83D20FF0061290240A00900007C0006AC600000043E
-S219026050B00900007C0006AC480000883D20FF0061290220A0D5
-S2190260650900007C0006AC60000008B00900007C0006AC480051
-S21902607A00683D20FF0061290220A00900007C0006AC60000063
-S21902608F04B00900007C0006AC480000483D20FF00612909404B
-S2190260A4800900007C0006AC60000080900900007C0006AC483A
-S2190260B90000283D20FF0061290948816900007C0006AC3C0018
-S2190260CE800054005D7E7D6B0378916900007C0006AC3D6000DF
-S2190260E303800B1E743D20000339291E107D2902147D2903A686
-S2190260F84E8004203D20FF0061290200A00900007C0006AC5487
-S21902610D00063E60000100B00900007C0006AC480000683D20DD
-S219026122FF0061290240A00900007C0006AC5400063E600001C6
-S21902613700B00900007C0006AC480000443D20FF0061290220D1
-S21902614CA00900007C0006AC5400063E60000100B00900007C32
-S2190261610006AC480000203D20FF0061290940800900007C00D4
-S21902617606AC6000E000900900007C0006AC3D600003800B1F0A
-S21902618B5C3D20000339291EF87D2902147D2903A64E800420C7
-S2190261A03D20FF0061290014800900007C0006AC600000409002
-S2190261B50900007C0006AC4E8000203D20FF0061290200A00918
-S2190261CA00007C0006AC60000008B00900007C0006AC4E80006E
-S2190261DF203D20FF0061290200A00900007C0006AC6000000461
-S2190261F4B00900007C0006AC4E8000203D20FF0061290240A0F2
-S2190262090900007C0006AC60000004B00900007C0006AC4E8029
-S21902621E00203D20FF0061290220A00900007C0006AC60000005
-S21902623308B00900007C0006AC4E8000203D20FF00612902206A
-S219026248A00900007C0006AC60000004B00900007C0006AC4ECA
-S21902625D8000203D20FF0061290940800900007C0006AC60003F
-S2190262720080900900007C0006AC4E8000203D20FF00612909EC
-S21902628748816900007C0006AC3C00800054000FFE7D6B03781B
-S21902629C916900007C0006AC4E8000207C1E22A6600000077C8B
-S2190262B11E23A64E8000209421FFF093E1000C54E0FFFE70FF38
-S2190262C600012F0000002F8300207CC0FE707D600026556B1F2E
-S2190262DBFE54A500267D400026554ADFFE7C0600507D4A00D0C2
-S2190262F07CE0002654E7EFFE7D6B00D060A808FF54000FFE7D43
-S2190263050858787D4950F860A508FD7CFF00387CAB5838714A67
-S21902631A000D2F9F00007D654378548400267129001D7D4A4B28
-S21902632F78608402003960000039000020419E005C546B402E9A
-S2190263447D55C3A67D70C3A67C93C3A67CB6C3A660A001007D1B
-S2190263595DC3A67D78C3A67C9BC3A67C1EC3A6386300013CC6E3
-S21902636EFF807F8340007CC0FE707C0600507D2000265529EFA6
-S219026383FE54000FFE7D2700393C8400803CA500804082FFACB4
-S219026398656020007C10C3A67C18C3A683E1000C382100104EEB
-S2190263AD800020380000007C19C3A6380000207C0903A639201F
-S2190263C20000380000007C15C3A67D30C3A67C13C3A67C16C32A
-S2190263D7A67C1DC3A67D38C3A67C1BC3A67C1EC3A6392901007E
-S2190263EC4200FFD83C00200060001F007C10C3A67C18C3A64E61
-S2190264018000209421FDE87CDE9AA674C6FFFF3D600003812B27
-S21902641635542C0900004082020039400030380000017D49033D
-S21902642BA6900B3554B12609C43800000039263C807D284B782C
-S2190264409806086038E62E0838A1000838862E0038610009393E
-S21902645581021198090000392900014200FFF839202E00B128FA
-S21902646A0002396000103940020938002E089968000599680072
-S21902647F04B0080000B14800063920A800B1262E0838000101FE
-S219026494B007000290A700047C8B2378B14B0002380000A598E3
-S2190264A901000890AB0004B1262E0038000000980608643920EF
-S2190264BE005099260868380000019806086039200111B12609B9
-S2190264D3C0A00609C070090001418200187CC93378A00909C0C7
-S2190264E8700A00014082FFF87D264B7838000211B00609C0A193
-S2190264FD2609C071200001418200187CC93378A00909C0700A4B
-S21902651200014082FFF87D264B78392000007D2903A63800006D
-S219026527819806086C7D4902A6614AC3517D4903A6A00B00007E
-S21902653C70098000418200084200FFF4394001007D4903A63D24
-S21902655120000339297CE439600000380000FF7C0959AE396B49
-S21902656600014200FFF87D8763787C6B1B787C0B380041820004
-S21902657B9C3CA00003880B00002C00004D40820080880B0001A7
-S2190265902C00004F40820074880B00022C000054408200688C73
-S2190265A50B000839400000892B00015400402E7C084B787C0A0A
-S2190265BA4000396B00024080005438857CE47C651B78880B00A7
-S2190265CF00396B00017D693A787D23FE707C0451AE7C604A7848
-S2190265E47C0018507C00FE70394A00017CA900787C0A40007D69
-S2190265F96000387C0B4B784180FFCC48000010396B00017C0B94
-S21902660E38004082FF703800000098060860382102184E800088
-S219026623209421FFE87C0802A693A1000C93C1001093E1001447
-S2190266389001001C7C7D1B787C9F23787CBE2B784BFFFDBD3D39
-S21902664D20000339697CE4394B01007C0B50404080008457A82D
-S219026662063E880B00007C00400040820054886B0001396B00DB
-S219026677027F83F0004FFEE3827C000026540007FE7C0000D01A
-S21902668C7FC900787C6000387C034B794081004C7C6903A67DC3
-S2190266A1695B787FE4FB7888090000392900019804000038847F
-S2190266B600014200FFF048000028886B0001380300027D2B004D
-S2190266CBEE5529063E2C0900FF4182000C7C0B50404180FF88A1
-S2190266E0386000008001001C7C0803A683A1000C83C100108335
-S2190266F5E10014382100184E8000209421FFF87C0802A69001CC
-S21902670A000C480035418001000C7C0803A6382100084E8000C0
-S21902671F203C80FF00608400007C9E9BA63CA0FA1060A5000158
-S2190267343C60000060630000986500007C788AA63C600A007CA7
-S2190267490004AC7C788BA63C600C007C0004AC7C788BA63C60CA
-S21902675E04007C0004AC7C788BA63C6001007C0004AC7C788B82
-S219026773A63C6007007C0004AC7C788BA67C708AA63C600A00AE
-S2190267887C708BA64C00012C3C600C007C708BA64C00012C3CE5
-S21902679D6004007C708BA64C00012C7C0004AC3C6000606063FB
-S2190267B22400906400003C60FFFF6063FF88906400043C60003B
-S2190267C700606300C2B06402003C6055CC6063AA3390640320A7
-S2190267DC90640324906403289064032C386000C3B0640220387B
-S2190267F1600083B064024038600200B064017A3C601880606333
-S2190268061000906401703C60FE00606304013CA0FF8060A50936
-S21902681B609064010090A401043C600000606300813CA0FFC058
-S21902683060A504009064010890A4010C3C600000606300803CEA
-S219026845A0000060A504009064011090A401143C6000006063E1
-S21902685A00803CA0000060A504009064011890A4011C3C60FAC9
-S21902686F00606304013CA0FFE060A509309064012090A40124DE
-S2190268843C608000606300013CA0A00060A501089064012890E1
-S219026899A4012C3C60FA21606300013CA0FFFF60A501089064BB
-S2190268AE013090A401343C60FC00606300013CA0FF8060A5096F
-S2190268C3409064013890A4013C3C600200606300009064028004
-S2190268D8806402845463653E2C030000418200103C605F506033
-S2190268ED63D0004800000C3C6000006063D000906402843C40E3
-S21902690200003C60FF0060630014904300003C40000060420016
-S219026917007C4210F87C5603A6384000013C60FF00606302004A
-S21902692CB04300003CA0FA1060A500013C600000606300089871
-S2190269416500004E8000207063000E3C80FA106084000198645F
-S21902695600004E8000203C80FA106084000138A0000A98A4006E
-S21902696B003CA0000A7CA903A64200000038A0000C98A40000FA
-S2190269803CA0000A7CA903A6420000003863FFFF2C03000040FD
-S21902699580FFD038A0000698A400003CA000147CA903A642007D
-S2190269AA00004E8000203D20000339291FE05463073E7C691829
-S2190269BFAE4E8000209421FFF87C0802A69001000C3D2000034B
-S2190269D4806935702C0300004181000C48001B454800000C38E8
-S2190269E900FFFF900935708001000C7C0803A6382100084E806D
-S2190269FE00203803FF9F280000054181000C3863FFA94E800078
-S219026A13203923FFD05520063E280000094181000C7D234B7801
-S219026A284E8000203803FFBF280000054081000C3860FFFF4E8D
-S219026A3D8000203863FFC94E8000209421FFE07C0802A69001FB
-S219026A5200243800000098010018906100104BFFFF65546306AF
-S219026A673E388100084800001D2C0300014082FFEC800100242D
-S219026A7C7C0803A6382100204E8000209421FFF07C0802A69307
-S219026A91C1000893E1000C900100147C9F2378897F00102C0BF6
-S219026AA60000408200282C03002440820098392000013800FFAC
-S219026ABBFF901F0004993F0010917F0000917F000C4800007C35
-S219026AD02C0B0001408200542C03002340820020815F000881BF
-S219026AE57F000C380000007C0A59AE39200002993F00104800BA
-S219026AFA0050817F000C2C0B0800418200E8801F0000813F00DB
-S219026B0F087C001A14901F00007C6959AE380B0001901F000C1E
-S219026B24480000242C0B0002408200245463063E4BFFFECD5466
-S219026B3963203638000003907F0004981F001038600000480092
-S219026B4E00AC2C0B0003408200985463063E4BFFFEA5801F0064
-S219026B6304893F00037C001B787C090000901F0004418200102D
-S219026B783860002D4800196D4800006C3860002B4800196181B4
-S219026B8D3F0008880900022C00003A4082004C8869000083DF4B
-S219026BA2000C48001945813F0008886900014800193939600038
-S219026BB7037C0BF040418100287FCAF3787FE4FB7881240008E7
-S219026BCC7C0958AE7D2B4A14396B00017C0B50409809FFFD4083
-S219026BE181FFE8386000014800001038000000981F00103860A8
-S219026BF6FFFF800100147C0803A683C1000883E1000C382100AE
-S219026C0B104E8000209421FFE07C0802A69361000C938100108B
-S219026C2093A1001493C1001893E1001C900100243D2000033BC4
-S219026C35691FE07C7C1B7838600024480018A98BFC00003BC009
-S219026C4A00002C1F00003BA00000418200247FE3FB78480018EC
-S219026C5F8D7C1DFA143BDE00017FFCF0AE541D063E2C1F0000B2
-S219026C744082FFE4386000234800186D57A0E13E7C7B00AE48D4
-S219026C8900186157A0073E7C7B00AE480018554BFFFD2D5463B5
-S219026C9E067E2C03002B4082FF98800100247C0803A6836100ED
-S219026CB30C8381001083A1001483C1001883E1001C3821002018
-S219026CC84E8000209421FFD87C0802A693610014938100189343
-S219026CDDA1001C93C1002093E100249001002C3D2000038169CB
-S219026CF238303D4000032C0B000038000000900A35743F60004D
-S219026D07033F800003408101383FC000033FA000033D2000036D
-S219026D1C8009383C2C0000004182006C801C38303D6000032837
-S219026D3100000340810018801E3834700900034082000C3BE0FB
-S219026D46000448000034801C38303BE0000128000001408100A7
-S219026D5B24800B3834540007FE7C0000D07C00FE707C0900F8F5
-S219026D70540007FE552907BC7C1F4B78808B3834386100087F78
-S219026D85E5FB784800233148000014813E38343BE000018809CA
-S219026D9A0000980100083D200003800935742C000000408200BC
-S219026DAF98390000007C08F8004080006C3D20000338C91FE0EF
-S219026DC438A100083CE000033C8000037D6828AE8147383855AC
-S219026DD960E13E7D2600AE992A000080043574394A00012C002E
-S219026DEE000091473838408200505560073E7D2600AE396A0041
-S219026E0301992A0000801B3574916738382C00000040820030E5
-S219026E18390800017C08F8004180FFB0813D3830801E38347D83
-S219026E2D3F48502C0900007C00FA14901E3834913D38304181A1
-S219026E42FED88001002C7C0803A6836100148381001883A1004C
-S219026E571C83C1002083E10024382100284E8000209421FFE80C
-S219026E6C7C0802A693A1000C93C1001093E100149001001C2CD9
-S219026E810600003D2000033D6000033D4000033D000003908916
-S219026E963838906B383490AA383090C8383C418200303FA000C9
-S219026EAB0338000000901D3574813D35744BFFFE15813D35740F
-S219026EC0801D35742C00000041820010386000004800001C4B2A
-S219026ED5FFFDF93D600003812B38383800000098090000806B2C
-S219026EEA38388001001C7C0803A683A1000C83C1001083E1006A
-S219026EFF14382100184E8000209421FFC07C0802A69281001041
-S219026F1492A1001492C1001892E1001C93010020932100249301
-S219026F294100289361002C9381003093A1003493C1003893E117
-S219026F3E003C900100443D200003800938303B6000002C00000E
-S219026F53003D200003936935743E8000033EA000034081017049
-S219026F683D200003816938343F000003880B00002C0000004115
-S219026F7D8201583EC000033F4000033EE000038016383C2C0043
-S219026F92000041820058801538302800000340810018801A38F5
-S219026FA738700900034082000C3BC000044800003C80153830CC
-S219026FBC3BC00001280000014081002C801A3838540007FE7CC8
-S219026FD10000D07C00FE707C0900F8540007FE552907BC7C1E39
-S219026FE64B78480000083BC000013BE000007C1FF0004080001A
-S219026FFB743FA000033F2000033B810008813D383488690000E3
-S21902701039290001913D38345463063E4BFFF9E580193574540E
-S2190270257B26362C000000408200A8813838348869000039296A
-S21902703A0001913838345463063E4BFFF9BD801435747F631BCF
-S21902704F782C000000547B063E4082007C7F7FE1AE3BFF000168
-S2190270647C1FF0004180FFA08016383C2C000000418200188094
-S2190270799A3838386100087FC5F378480020954800000C813A95
-S21902708E38389B6900003D200003800935742C000000408200F2
-S2190270A33481373830801A38387D3E48502C0900007C00F21469
-S2190270B8901A3838913738304081001481383834880900002CBB
-S2190270CD0000004082FEBC800100447C0803A68281001082A103
-S2190270E2001482C1001882E1001C830100208321002483410074
-S2190270F7288361002C8381003083A1003483C1003883E1003C9D
-S21902710C382100404E8000209421FFE87C0802A693A1000C9345
-S219027121C1001093E100149001001C2C0600003D2000033D601D
-S21902713600033D4000033D00000390693834908B383890AA3818
-S21902714B3090C8383C418200303FA0000338000000901D3574C9
-S219027160813D35744BFFFDA5813D3574801D35742C00000041A6
-S21902717582001038600000480000104BFFFD893D200003806963
-S21902718A38388001001C7C0803A683A1000C83C1001083E100C7
-S21902719F14382100184E8000209421FFF87C0802A69001000CEC
-S2190271B448001AA53D20000338000001900935588001000C7CF0
-S2190271C90803A6382100084E8000209421FFE87C0802A693A1AE
-S2190271DE000C93C1001093E100149001001C7C9E23783BA00060
-S2190271F3007C7F1B7893BE000048000024801E0000813F0000D7
-S219027208540020367C001B7839290001901E0000913F00003B95
-S21902721DBD0001813F0000886900002C030000418200104BFF9A
-S219027232F7D17C631B794080FFC87FA3EB788001001C7C0803D5
-S219027247A683A1000C83C1001083E10014382100184E8000202A
-S21902725C7C84237939400000408200183800003098030001988B
-S219027271030000386000024E800020392500077D20FE705400B2
-S2190272861F7E7D2902147D251E71418200603D20000338C91FBF
-S21902729BE038E5FFFF54E018387C88043068A9000120090000E5
-S2190272B07D2049143168FFFF7C0B41107C0B4B794182002855CE
-S2190272C508063E5500E13E7D6600AE5509073E7C0648AE996345
-S2190272DA00009C03000138630001394A00027CE53B794082FF01
-S2190272EFB07D4353784E8000204E8000204E8000209421FFF0DA
-S2190273047C0802A693C1000893E1000C900100143D20000380E0
-S21902731909356C2C000000418200108009356C7C0803A64E808A
-S21902732E00213D200003800938602C0000004182001438000066
-S21902734300900938603BE000024800001048006D7148006CA509
-S2190273587C7F1B7848006E2D2C0300004182000848006E594857
-S21902736D006E194BFFFF8D48006DC93860000348001BD13860C2
-S219027382000348001B612C1F0000418200203FC00003813E3504
-S2190273975C7FE3FB787D2803A64E8000212C0300004082FFEC90
-S2190273AC48006DD53D200003800935682C000000418200108036
-S2190273C10935687C0803A64E800021800100147C0803A683C1E8
-S2190273D6000883E1000C382100104E8000209421FFB87C0802DA
-S2190273EBA6936100349381003893A1003C93C1004093E10044B0
-S2190274009001004C7C7E1B783BE000003F6000033B81002880E5
-S2190274151B384C3BA000012C0000004182001C7FE3FB787F84FD
-S21902742AE3787C0803A64E8000217C7D1B78480000107FE3FB8E
-S21902743F784800108190610028381FFFE02800001F7C0A037849
-S2190274542F9D00003BFF00017F83E3784181004C390000047DF0
-S2190274690903A6386100087C6B1B7838000000392000007C0B22
-S21902747E49AE392900014200FFF8380000047C0903A67C6943CD
-S219027493787F8BE378880B0000396B00019809000039290001C4
-S2190274A84200FFF0419E0030200A001F7C0001107C0500F854E5
-S2190274BD00077A54A507387FC4F3787C052B7838C000004BFFE6
-S2190274D2F9997C7E1B7848000058212A001F7D2949107D204891
-S2190274E7F8540006F6552907387D2903782C0900007FCBF37879
-S2190274FC380000783929FFFF418200182C090000980B00003978
-S2190275116B00013929FFFF4082FFF0280A001F4181000C3BDEA9
-S2190275260010480000083BDE00082C1F00464081FEE080010017
-S21902753B4C7C0803A6836100348381003883A1003C83C1004083
-S21902755083E10044382100484E8000209421FFD07C0802A67DBB
-S2190275658000269381002093A1002493C1002893E1002C90012B
-S21902757A00349181001C88030000386300012C0000507C9D23B4
-S21902758F7890610008392000003BC00047408200703861000801
-S2190275A43881000C4BFFFC2D2C03000041820028812100088847
-S2190275B9090000392900012C00003D91210008408200108121B3
-S2190275CE000C3BC90001480000383D20000388091FF87FA4EBFA
-S2190275E3782C00000039691FF8418200D8880B00009804000065
-S2190275F88D2B0001388400012C0900004082FFEC480000BC7D9E
-S21902760D3F4B787C1FF000408000803B800000397FFFE020AB77
-S219027622001F7CA52910392100103881000C7CA028F87C842840
-S219027637787CA9483854A5077A54000738806100082A0B001FD0
-S21902764C7CA503787D2423789381001038C000004BFFFAB980B1
-S2190276618100107FE3FB7848000E6D41910010812100083929F6
-S21902767600104800000C8121000839290008912100083BFF008C
-S21902768B017C1FF0004180FF8C3D20000388091FFC7FA4EB7879
-S2190276A02C00000039691FFC4182001C880B0000980400008D4A
-S2190276B52B0001388400012C0900004082FFEC3800000098041A
-S2190276CA0000800100348181001C7C0803A68381002083A1005C
-S2190276DF2483C1002883E1002C7D808120382100304E8000205A
-S2190276F49421FF287C0802A693A100CC93C100D093E100D49076
-S2190277090100DC3BA000003D6000047C7E1B789BAB8774893E76
-S21902771E00003809FFC128000034418108283D600003396B209C
-S219027733105400103A7D4B002E3D200003392920107D4A4A147F
-S2190277487D4903A64E80042048006971480068A53D20000339B4
-S21902775D291FE05460E73E7D0900AE5463073E7CE918AE3D4037
-S219027772000438000053392A8774980A877439600000996900D6
-S219027787039909000198E90002480007D4387E000148000B6D23
-S21902779C480007C8387E000148000CE5480007BC3C60000438E7
-S2190277B16387744BFFFC31480007AC881E00012C000000408257
-S2190277C60040480009013D20000388091FFC3D6000042C00003C
-S2190277DB00396B877439491FFC41820748880A00008D2A0001FA
-S2190277F0980B00002C090000396B00014082FFEC4800072C38A0
-S2190278051E0001900100883BC1008C3BE100887FE3FB787FC4EB
-S21902781AF3784BFFF9B92C030000418200A4812100888809009A
-S21902782F00392900012C00002C912100884082008C7FE3FB7825
-S219027844388100904BFFF98D2C030000418200788121008888F3
-S219027859090000392900012C00002C91210088408200608081F2
-S21902786E008C2C04000041820038806100904800088D7C641BFE
-S21902788379418200148061008880A1008C38C000004BFFF881C8
-S2190278988001008C812100887C0002147D290214912100888194
-S2190278AD210088880900002C00002C4082001038090001900188
-S2190278C200884BFFFF5081210088880900002C000000408200E0
-S2190278D73C3D20000388091FFC3D6000042C000000396B8774E1
-S2190278EC39491FFC4182063C880A00008D2A0001980B00002CC5
-S219027901090000396B00014082FFEC480006203D2000038809B0
-S21902791620003D6000042C000000396B8774394920004182065E
-S21902792B04880A00008D2A0001980B00002C090000396B000175
-S2190279404082FFEC480005E83C8000047FC3F378388487744BDA
-S219027955FFFC094800060C381E00013BE10094900100947FE32A
-S21902796AFB78388100984BFFF8652C0300004182009081210072
-S21902797F9488090000392900012C00002C91210094408200788C
-S2190279947FE3FB783881009C4BFFF8392C03000041820064805C
-S2190279A96100983C80000480A1009C3884877438C000014BFF52
-S2190279BEF4AD2C030000408205A03D600003880B20043D2000C2
-S2190279D3042C00000039498774396B20044182001C880B0000B1
-S2190279E88D2B0001980A00002C090000394A00014082FFEC388A
-S2190279FD000000980A0000480005603D200003880920003D6071
-S219027A1200042C000000396B8774394920004182050C880A0081
-S219027A27008D2A0001980B00002C090000396B00014082FFEC61
-S219027A3C480004F03BA00001381E00013BE100A0900100A07F53
-S219027A51E3FB78388100A44BFFF77D2C030000418201F881211B
-S219027A6600A088090000392900012C00002C912100A040820103
-S219027A7BE07FE3FB78388100A84BFFF7512C030000418201CC88
-S219027A90806100A088030000386300012C00003A906100A040FB
-S219027AA58201B42C1D000041820124800100A82C000000418245
-S219027ABA00A8800100A83BE000007C1F0040408000543941005B
-S219027ACF08816100A0892B0000396B00017D204B782C00007DAF
-S219027AE47D2AF9AE916100A040820018880B0000392B00016074
-S219027AF90000207C0AF9AE912100A03BFF0001281F007F41810F
-S219027B0E0010800100A87C1F00404180FFB8808100A438610091
-S219027B23087FE5FB78480015F17C03F80040820024812100A872
-S219027B38800100A47D3F48502C0900007C00FA14900100A49133
-S219027B4D2100A84082FF6C800100A82C0000004082003C3D2076
-S219027B62000388091FFC3D6000042C000000396B877439491F4B
-S219027B77FC418203B4880A00008D2A0001980B00002C0900005A
-S219027B8C396B00014082FFEC480003983D200003880920043D56
-S219027BA16000042C000000396B8774394920044182037C880A1F
-S219027BB600008D2A0001980B00002C090000396B00014082FFBD
-S219027BCBEC48000360808100A480A100A838C000014BFFF53928
-S219027BE02C0300004182003C3D20000388091FFC3D6000042C82
-S219027BF5000000396B877439491FFC4182032C880A00008D2AFD
-S219027C0A0001980B00002C090000396B00014082FFEC480003E8
-S219027C1F103D200003880920043D6000042C000000396B8774B8
-S219027C3439492004418202F4880A00008D2A0001980B00002CBC
-S219027C49090000396B00014082FFEC480002D83D2000038809B1
-S219027C5E20083D6000042C000000396B87743949200841820207
-S219027C73BC880A00008D2A0001980B00002C090000396B000172
-S219027C884082FFEC480002A0881E0000395E0001680900532126
-S219027C9D6900007D2B491468000043216000007C0B01147C0B0E
-S219027CB24B7939600000914100AC916100B03BE100AC418200AE
-S219027CC7287FE3FB78388100B04BFFF505812100AC8809000018
-S219027CDC2C00003B4082000C38090001900100AC7FE3FB7838CB
-S219027CF18100B44BFFF4E12C0300004182000C806100B4480048
-S219027D0663D1386000034800124138600003480011D180610051
-S219027D1BB02C0300004182004C3D200003800935642C000000B0
-S219027D304182001C800935647C0803A64E8000217C631B794067
-S219027D45820008906100B0800100B02C00000041820018380087
-S219027D5A0009900100B0386000094800030D4800020848000927
-S219027D6F4D2C0300004182001838000063981E00003D200003F0
-S219027D843800000190093584881E000068090053216900007DE7
-S219027D992B491468000073216000007C0B01147C0B4B79418240
-S219027DAE0024386000004BFFF5453D20000439291B983D600066
-S219027DC303912B3580480063354800000C386000014BFFF525FF
-S219027DD8386000034800117138600003480011013860FFFF4857
-S219027DED0001883D200003800935607C0803A64E8000213860BF
-S219027E0200014800017048000F8948000158381E000190010041
-S219027E17B8386100B8388100BC4BFFF3B52C0300004182007C71
-S219027E2C812100B888090000392900012C00002C912100B840EA
-S219027E4182006488090000392900012C000043912100B84082B0
-S219027E560010806100BC48001ADD4800000C806100BC48001AD1
-S219027E6BC93D20000388091FFC3D6000042C000000396B8774BA
-S219027E8039491FFC418200A8880A00008D2A0001980B00002CC5
-S219027E95090000396B00014082FFEC4800008C3D2000038809B1
-S219027EAA20003D6000042C000000396B877439492000418200CB
-S219027EBF70880A00008D2A0001980B00002C090000396B000170
-S219027ED44082FFEC48000054381E0001900100C0386100C03810
-S219027EE98100C44BFFF2E92C030000408200443D2000038809ED
-S219027EFE200C3D6000042C000000396B87743949200C4182005F
-S219027F131C880A00008D2A0001980B00002C090000396B00016F
-S219027F284082FFEC38000000980B0000480000303C6000033866
-S219027F3D631FFC4BFFECD1806100C448000615480000183C807F
-S219027F5200047FC3F3783884877438A0012C4800121D3C600093
-S219027F6704386387744BFFECA538600000800100DC7C0803A667
-S219027F7C83A100CC83C100D083E100D4382100D84E80002094FA
-S219027F9121FFE87C0802A693A1000C93C1001093E100149001E3
-S219027FA6001C3FA00004389D877448000E21387D87744BFFEC93
-S219027FBB598001001C7C0803A683A1000C83C1001083E100148B
-S219027FD0382100184E8000209421FFF07C0802A693E1000C9056
-S219027FE50100143D200003800935702C000000408000084BFF9F
-S219027FFAFF993FE00003387F7F744BFFEA45387F7F744BFFF6A4
-S21902800FE97C631B794182FFEC7C6318F854630FFE8001001403
-S2190280247C0803A683E1000C382100104E8000204E80002094CA
-S21902803921FFF87C0802A69001000C4BFFF16548000C55386069
-S21902804E002B480004998001000C7C0803A6382100084E80001D
-S219028063203D200003906935704E8000209421FFF87C0802A61D
-S2190280789001000C3D20000339291FE05460E73E7D4900AE54ED
-S21902808D63073E7D0918AE3D60000438000058386B8774980B71
-S2190280A28774392000009943000199030002992300034BFFEBFF
-S2190280B75D8001000C7C0803A6382100084E8000203D200004E6
-S2190280CC38A0000039298FC43CC0000338E0FFFF3C8000033DFA
-S2190280E16000043D4000033D0000033800000190E6384490ABF9
-S2190280F68F74912A38489008357890A438404E8000209421FF9D
-S21902810BF07C0802A693C1000893E1000C900100143D2000035B
-S219028120800935787C7F1B782C0000007C9E2378408200084B89
-S219028135FFFF952C1F0012418100243D600003800B38483D2050
-S21902814A000439298FC47C0900507C00F21428000080408100A0
-S21902815F0C386000004800006C3CE00003800738447C1F0000EF
-S2190281744182004C3D000003800838407C1F00004180002039EB
-S2190281895F00013D20000439298F74554B103A380000007C090D
-S21902819E592E914838403D600003814B38483D20000439298FAF
-S2190281B37457E0103A7D49012E93E738443D2000038069384807
-S2190281C87C03F21490093848800100147C0803A683C10008836C
-S2190281DDE1000C382100104E8000209421FFD87C0802A6936196
-S2190281F200149381001893A1001C93C1002093E1002490010044
-S2190282072C3D600003800B357C7C7D1B782C0000007C9E2378E6
-S21902821C7CBF2B7840820058380000013D2000043929904490EE
-S2190282310B357C39400000380000087C0903A6390A0001554BAA
-S219028246C00E5547103A2C0B00005560083C4080000C6C0004FC
-S21902825BC168001DB77C0B03784200FFE87D0A4378280A00FF6C
-S2190282707C09392E4081FFC43D600003380000003D2000043B0E
-S219028285699044900B35743F800003480000248921000857E045
-S21902829A463E7C004A785400103A7D7B002E57E9402E7D3F5A7E
-S2190282AF783BBD00012C1E00003BDEFFFF41820020386100085D
-S2190282C47FA4EB7838A0000148000DED801C35742C000000414B
-S2190282D982FFBC7FE3FB788001002C7C0803A6836100148381A1
-S2190282EE001883A1001C83C1002083E10024382100284E8000E1
-S219028303209421FFD87C0802A693A1001C93C1002093E100242A
-S2190283189001002C3D20000438000000980987743BA987747CFC
-S21902832D691B7890610008880900002C000043408200F48809F8
-S21902834200012C000052408200E88BC900022C1E004340820051
-S219028357DC880900032C00003A408200D0380900043BE1000839
-S21902836C900100087FE3FB783881000C4BFFEE5D2C03000041BD
-S2190283818200EC8121000888090000392900012C00002C9121CA
-S2190283960008408200D47FE3FB78388100104BFFEE312C0300F7
-S2190283AB00418200C08061000C8081001038A0FFFF4BFFFE2DEA
-S2190283C03D20000383E935742C1F0000418200403D20000388F6
-S2190283D50920007FA3EB782C000000396920004182001C880B7E
-S2190283EA00008D2B0001980300002C090000386300014082FF91
-S2190283FFEC3800000098030000480000647C641B78387D0001CE
-S21902841438A000204BFFEE453D2000049BC98774386300017FFC
-S219028429FD19AE4800004081210008880900007D234B782C0021
-S21902843E004C7C090378418200284181000C2C00004348000066
-S219028453082C090050418200143C8000043884877438A0012C2D
-S21902846848000D058001002C7C0803A683A1001C83C10020839D
-S21902847DE10024382100284E8000209421FFF87C0802A6900106
-S219028492000C880300002C000070418200143C800004388487C1
-S2190284A77438A0012C48000CC98001000C7C0803A63821000808
-S2190284BC4E8000203D200003816935805463103A7C63582E4E03
-S2190284D18000203D200003816935805463103A7C83592E4E809B
-S2190284E600209421FFF87C0802A69001000C3D200000392932F4
-S2190284FB00816900185464063E806B0000800B000C7C0803A6B8
-S2190285104E8000218001000C7C0803A6382100084E80002094C3
-S21902852521FFF87C0802A69001000C3D2000003929320081697E
-S21902853A0018806B0000800B00107C0803A64E800021800100EA
-S21902854F0C7C0803A6382100084E8000209421FFF87C0802A6B0
-S2190285649001000C3D20000039293200816900187C651B788077
-S2190285796B0000800B0014388000007C0803A64E800021800187
-S21902858E000C7C0803A6382100084E8000209421FFF87C080217
-S2190285A3A69001000C480000158001000C7C0803A63821000801
-S2190285B84E8000209421FFE87C0802A693A1000C93C1001093BA
-S2190285CDE100149001001C3FC00003817E38503D2000032C0BD0
-S2190285E20000380000003BBE3850900935847C7F1B7841820021
-S2190285F7187D635B7848000055801E38502C0000004082002CC0
-S21902860C813F00003C007D82913D000460001008901F000093CB
-S219028621FE3850386000034800092538600003480008B5800185
-S219028636001C7C0803A683A1000C83C1001083E100143821008A
-S21902864B184E8000209421FFF87C0802A69001000C3D20000338
-S219028660816935842C0B0000408200183D2000038009385039A0
-S2190286754938507C0300004182000C3860000048000024800A3C
-S21902868A0004916938509003000038600003480008B538600083
-S21902869F0348000845386000018001000C7C0803A63821000873
-S2190286B44E8000203D200003800938503120FFFF7C6901104EB8
-S2190286C98000209421FFF87C0802A69001000C2C03000041828E
-S2190286DE00483D400003812A35883929FFFF2C090000912A35CB
-S2190286F388418100683D2000003929320081690018380000008E
-S219028708900A3588806B0000800B0014388000057C0803A64E3C
-S21902871D8000214800003C3D600003812B3588392900012C097A
-S2190287320001912B3588408200243D20000039293200816900F0
-S2190287471838800004806B0000800B00147C0803A64E8000219C
-S21902875C8001000C7C0803A6382100084E8000209421FFF87CD0
-S2190287710802A69001000C3D2000003929320081690018806BC1
-S2190287860000800B00107C0803A64E8000218001000C7C08030C
-S21902879BA6382100084E8000209421FFC87C0802A692C10010C2
-S2190287B092E10014930100189321001C9341002093610024930B
-S2190287C581002893A1002C93C1003093E100349001003C2C0466
-S2190287DA000D418201CC3D600003814B358C3D20000439299462
-S2190287EF447C8951AE2C04000A394A0001914B358C3F40000349
-S2190288044182000C2C0A00644082019C3D20000039293200831C
-S219028819C900187EE000A67EE0BB7839200000512004207C0063
-S21902882E01243C600003386389A84BFFFD653D2000033AC9206F
-S219028843E8807E0000813E000C388000247D2803A63B600000A3
-S2190288583BE0004F4E800021807E0000813E000C3880004F7D5E
-S21902886D2803A64E800021801A358C7C1B0000408000703D20B0
-S21902888200043D6000033B0994443B2B20E87D38D8AE807E0073
-S219028897005520E13E7F9900AE817E000C7F84E3787D6803A674
-S2190288AC5529073E7FB948AE3B7B00014E800021807E0000819A
-S2190288C13E000C7FA4EB787D2803A64E800021801A358C7F9F15
-S2190288D6E214579F063E7C1B00007FBFEA1457BF063E4180FF69
-S2190288EBA8807E0000813E000C388000237D2803A64E800021E8
-S219028900807E0000813E000C57E0E13E7C9600AE7D2803A64EE0
-S219028915800021807E0000813E000C57E0073E7C9600AE7D28FB
-S21902892A03A64E800021807E0000813E00107D2803A64E8000B0
-S21902893F215460063E2C00002B9861000841820038386100080F
-S21902895438800001480014392C03000040820014880100082CF7
-S21902896900002D4082FFC44BFFFED43D200000392932003800FB
-S21902897E0001900900443D200003380000009009358C3C600071
-S21902899303386389A84BFFFCB97C0000A652E004207C000124E1
-S2190289A88001003C7C0803A682C1001082E100148301001883E0
-S2190289BD21001C83410020836100248381002883A1002C83C1B5
-S2190289D2003083E10034382100384E8000209421FFE87C080220
-S2190289E7A693A1000C93C1001093E100149001001C7CBF2B7817
-S2190289FC7FE0FB782C0000007C7D1B787C9E23783BFFFFFF41A7
-S219028A11820024889E00007FA3EB784BFFFD897FE0FB782C002A
-S219028A2600003BDE00013BFFFFFF4082FFE48001001C7C080319
-S219028A3BA683A1000C83C1001083E10014382100184E8000201E
-S219028A509421FFE87C0802A693A1000C93C1001093E100149086
-S219028A6501001C7CBF2B787FE0FB782C0000007C7D1B787C9E56
-S219028A7A23783BFFFFFF418200247FA3EB784BFFFCE57FE0FB1C
-S219028A8F782C000000987E00003BDE00013BFFFFFF4082FFE41A
-S219028AA48001001C7C0803A683A1000C83C1001083E1001438B8
-S219028AB92100184E8000209421FF909081000C90A1001090C187
-S219028ACE001490E100189101001C9121002091410024386000E1
-S219028AE300382100704E8000209421FFF87C0802A69001000C4B
-S219028AF8386000004BFFFBD13D600004380000207C0903A63D50
-S219028B0D2000038149385C396B1B983D000003392000007C0956
-S219028B22502E7C09592E392900044200FFF47D6A5B783D2000FB
-S219028B37038169385C800B0094900A0100812B0090912A0104EB
-S219028B4C800B0080900A0108812B0088912A010C800B008C90BC
-S219028B610A0110812B0084912A01143D4000033D600003800B32
-S219028B7635843D2000042C00000039291B98912A358041820055
-S219028B8B183800000090083584386000404BFFF9294BFFFAB5F0
-S219028BA0386000404BFFF91D4BFFFAA93D200003906938608023
-S219028BB501000C7C0803A6382100084E8000209421FFF87C08EB
-S219028BCA02A69001000C380000207C0903A63D20000381493862
-S219028BDF5C3D600004396B1B98392000007C09582E7C09512EBE
-S219028BF4392900044200FFF47D6A5B783D2000038169385C80B2
-S219028C090A0100900B0094812A0104912B0090800A0108900BEB
-S219028C1E0080812A010C912B0088800A0110900B008C812A0150
-S219028C3314912B0084386000014BFFFA918001000C7C0803A6A9
-S219028C48382100084E800020386000004E8000203D20000339A2
-S219028C5D298C503D400003912A35643D600003396B8D903D2064
-S219028C720003916935603D4000033D600003394A8AEC914B352A
-S219028C876C3D20000339298BC43D600003912B35684E8000206D
-S219028C9C9421FFF07C0802A693C1000893E1000C900100143D2E
-S219028CB1200003800935902C000000408200BC380000019009BA
-S219028CC63590480055293D2000003BC93200813E00343860FFEA
-S219028CDBFF7D2803A64E800021813E00347C7F1B783860FFFD2C
-S219028CF07D2803A64E800021815E00143D200003392989E0917C
-S219028D052A00043D6000036FE0FFFF396B8A506800FFFE3D20F7
-S219028D1A0003916A0008392987A43100FFFF7CE80110912A004B
-S219028D2F0C3D600003301FFFFF7D00F910396B876C3D200003B2
-S219028D447CE04039916A001039298AC0912A0014418200148160
-S219028D593E00347FE3FB787D2803A64E800021801E0030386014
-S219028D6E00007C0803A64E800021800100147C0803A683C100C7
-S219028D830883E1000C382100104E8000209421FFF87C0802A62D
-S219028D989001000C3D20000039293200800900402C00000041FB
-S219028DAD82000C7C0803A64E8000218001000C7C0803A63821ED
-S219028DC200084E8000207FE000084E8000209421FFD87C080238
-S219028DD7A6936100149381001893A1001C93C1002093E100244A
-S219028DEC9001002C7C9D23787C7C1B7838000054981D00007FAF
-S219028E018326704BFFDBAD9C7D00017F83E3784BFFDBA17FBFEF
-S219028E16EB789C7F0001386000044BFFDB919C7F0001386000BB
-S219028E2B404BFFDB859C7F00013BA0003A9FBF000138600040D9
-S219028E404BFFF6813B810008906100083BFF00017FE4FB787F08
-S219028E5583E37838A0000438C000004BFFE0097C7F1B783B60F3
-S219028E6A003B9B7F0000386000004BFFDB3D9C7F0001386000E9
-S219028E7F014BFFDB319C7F00019FBF0001386000014BFFF631FB
-S219028E94906100083BFF00017FE4FB787F83E37838A000043847
-S219028EA9C000004BFFDFBD7C7F1B7838000000981F00019B7F6F
-S219028EBE00008001002C7C0803A6836100148381001883A10086
-S219028ED31C83C1002083E10024382100284E8000202C030001DC
-S219028EE84182002028030001418000502C030002418200242C0A
-S219028EFD030003418200304800003C3C0002004C00012C7C1099
-S219028F128BA64C00012C480000283C0004004C00012C7C108B59
-S219028F27A64C00012C480000143C000C004C00012C7C108BA635
-S219028F3C4C00012C7C708AA654630FFE4E8000202C0300014161
-S219028F5182002028030001418000682C030002418200202C03CA
-S219028F66000341820028480000543C0002007C0004AC7C188BDC
-S219028F7BA6480000443D6004007C0004AC7D788BA64800003439
-S219028F90380000807C0903A639200000612010003D600E007CCE
-S219028FA50004AC7D398BA67D788BA67C198BA67D788BA63929A5
-S219028FBA00104200FFE07C788AA654630FFE4E8000203D6000F7
-S219028FCF0338000001900B35743D200003800938583D600003ED
-S219028FE42C000000396B90A83D20000391693594418200A83D9E
-S219028FF9400003800A385828000003408100307080000340822E
-S21902900E002870600003408200208003000038630004900400B3
-S21902902300812A3858388400043929FFFC4800005C3D60000395
-S219029038800B38582800000140810034708000014082002C7094
-S21902904D60000140820024A003000038630002B0040000812B20
-S2190290623858388400023929FFFE912B38584800002088030006
-S219029077003863000198040000812A3858388400013929FFFF4D
-S21902908C912A3858800A38582C0000004082FF643D200003387A
-S2190290A1000000900935743D20000338000000900935944E80A9
-S2190290B600209421FFE87C0802A69381000893A1000C93C10006
-S2190290CB1093E100149001001C7C601B787CBC2B787C83237860
-S2190290E03FA000037C040378939D38584BFFFEE1807D38587CA5
-S2190290F563E0508001001C7C0803A68381000883A1000C83C182
-S21902910A001083E10014382100184E8000209421FFE87C080240
-S21902911FA69381000893A1000C93C1001093E100149001001C99
-S2190291347CBC2B783FA00003939D38584BFFFE8D807D38587CC4
-S21902914963E0508001001C7C0803A68381000883A1000C83C12D
-S21902915E001083E10014382100184E800020386000004E8000A8
-S21902917320386000004E800020386000004E8000209421FFF010
-S2190291887C0802A693C1000893E1000C900100143D200003803E
-S21902919D0938682C000000418200603FE000033BC000007D40E4
-S2190291B200A67D40537839200000512004207C000124817F38AC
-S2190291C768800B0014808B0018901F386893CB00187C0000A67B
-S2190291DC514004207C000124812B000C80AB0010806B00007DC6
-S2190291F12803A64E800021801F38682C0000004082FFB0800145
-S21902920600147C0803A683C1000883E1000C382100104E800018
-S21902921B209421FFF87C0802A69001000C4BFFFF5D8001000C6F
-S2190292307C0803A6382100084E800020906900003800000090E5
-S21902924589000490A90010900900189128000090C9000890E9F3
-S21902925A000C900900144E800020812300002C090000418200B5
-S21902926FF8810300043809FFFF28000039418100E83D60000379
-S219029284396B21005400103A7D4B002E3D200003392921007D15
-S2190292994A4A147D4903A64E8004203D20FF0061290200A169BE
-S2190292AE00007C0006AC556B063E38000000600080007C004698
-S2190292C3307D600378540B043EB16900007C0006AC4800009046
-S2190292D83D20FF0061290240A16900007C0006AC556B063E38DE
-S2190292ED000000600080007C0046307D600378540B043EB16980
-S21902930200007C0006AC4800005C3D20FF0061290220A169006B
-S219029317007C0006AC556B063E38000000600080007C004630FE
-S21902932C7D600378540B043EB16900007C0006AC480000283D37
-S21902934120FF0061290940800900007C0006AC540004DE550BD1
-S21902935668247C005B78900900007C0006AC800300003D200079
-S21902936B03394932405408103A7C0A402E3D20000239295DEC4B
-S2190293807C004800418200187C0A402E3D20000339299E087C5A
-S2190293950048004C820020800300083D6000037C0A412E8143A2
-S2190293AA0010396B332C3D2000037D4B412E392934187C694129
-S2190293BF2E4E8000207C631B794D8200203803FFFF280000397A
-S2190293D47C0803784D8100203D600003396B21E85500103A7D27
-S2190293E94B002E3D200003392921E87D4A4A147D4903A64E80C2
-S2190293FE04203D20FF0061290014816900007C0006AC3C008061
-S219029413007C0044307D6B0078916900007C0006AC4E800020D7
-S2190294283D20FF0061290200A00900007C0006AC7000FFF754AF
-S21902943D00043EB00900007C0006AC4E8000203D20FF00612916
-S2190294520200A00900007C0006AC7000FFFB5400043EB009006C
-S219029467007C0006AC4E8000203D20FF0061290240A0090000FC
-S21902947C7C0006AC7000FFFB5400043EB00900007C0006AC4E71
-S2190294918000203D20FF0061290220A00900007C0006AC7000D0
-S2190294A6FFF75400043EB00900007C0006AC4E8000203D20FFED
-S2190294BB0061290220A00900007C0006AC7000FFFB5400043E12
-S2190294D0B00900007C0006AC4E8000203D20FF006129094080FC
-S2190294E50900007C0006AC5400066E900900007C0006AC4E80D7
-S2190294FA00203D20FF0061290948816900007C0006AC3943FF6C
-S21902950FE53C0080007C0054307D6B0078916900007C0006AC17
-S2190295244E8000207C631B794D8200203803FFFF280000397CC5
-S2190295390803784D8100203D600003396B22D05500103A7D4B08
-S21902954E002E3D200003392922D07D4A4A147D4903A64E8004B9
-S219029563203D20FF0061290014816900007C0006AC3C008000FE
-S2190295787C0044307D6B0378916900007C0006AC4E8000203D31
-S21902958D20FF0061290200A00900007C0006AC60000008B0091F
-S2190295A200007C0006AC4E8000203D20FF0061290200A0090000
-S2190295B7007C0006AC60000004B00900007C0006AC4E80002031
-S2190295CC3D20FF0061290240A00900007C0006AC60000004B070
-S2190295E10900007C0006AC4E8000203D20FF0061290220A00998
-S2190295F600007C0006AC60000008B00900007C0006AC4E80000E
-S21902960B203D20FF0061290220A00900007C0006AC60000004E0
-S219029620B00900007C0006AC4E8000203D20FF006129094080AA
-S2190296350900007C0006AC60000080900900007C0006AC4E806D
-S21902964A00203D20FF0061290948816900007C0006AC3943FF1A
-S21902965FE53C0080007C0054307D6B0378916900007C0006ACC3
-S2190296744E8000207C631B794D8200203803FFFF280000397C74
-S2190296890803784D8100203D600003396B23B85500103A7D4BCE
-S21902969E002E3D200003392923B87D4A4A147D4903A64E80047F
-S2190296B3203D20FF0061290010816900007C0006AC3C008000B1
-S2190296C87C0044307D6B0378916900007C0006AC4E8000203DE0
-S2190296DD20FF0061290200A00900007C0006AC60000080B00956
-S2190296F200007C0006AC4E8000203D20FF0061290200A00900AF
-S219029707007C0006AC60000040B00900007C0006AC4E800020A3
-S21902971C3D20FF0061290240A00900007C0006AC60000080B0A2
-S2190297310900007C0006AC4E8000203D20FF0061290220A00946
-S21902974600007C0006AC60000080B00900007C0006AC4E800044
-S21902975B203D20FF0061290220A00900007C0006AC6000004053
-S219029770B00900007C0006AC4E8000203D20FF006129094C814C
-S2190297856900007C0006AC3943FFE53C0080007C0054307D6B2D
-S21902979A0378916900007C0006AC4E8000207C8723787C631B8A
-S2190297AF794D8200203803FFFF280000397C0803784D810020AF
-S2190297C43D600003396B24A05500103A7D4B002E3D2000033953
-S2190297D92924A07D4A4A147D4903A64E8004203C0080007C00C9
-S2190297EE44303D60FF00616B0018808B00007C0006AC7C840032
-S219029803787CEAFE707D493A787D2950507D29FE707C800378B4
-S2190298187C0048787C8948387D240378908B00007C0006AC4EC0
-S21902982D8000207C8823787C631B794D8200203803FFFF28001D
-S21902984200394D8100203D600003396B25885400103A7D4B008C
-S2190298572E3D200003392925887D4A4A147D4903A64E800420D2
-S21902986C3D20FF0061290200A08900007C0006AC5484063E384D
-S219029881000000600080007C0046307C8003785404043EB089AF
-S21902989600007C0006AC4E8000203D20FF0061290240A0890049
-S2190298AB007C0006AC5484063E38000000600080007C0046304D
-S2190298C07C8003785404043EB08900007C0006AC4E8000203DE9
-S2190298D520FF0061290220A08900007C0006AC5484063E380001
-S2190298EA0000600080007C0046307C8003785404043EB0890046
-S2190298FF007C0006AC4E8000203D20FF00612909408009000079
-S2190299147C0006AC540004DE550B68247C005B78900900007C83
-S2190299290006AC4E800020386000014E800020386000014E8094
-S21902993E00209421FFF87C0802A69001000C4BFFC541800100A7
-S2190299530C7C0803A6382100084E8000203C00FE0060000100D5
-S2190299687C0903A64E8004209421FFF87C0802A69001000C4B03
-S21902997DFFFFE5386000008001000C7C0803A6382100084E806A
-S2190299920020386000004E8000209421FFE87C0802A693A10017
-S2190299A70C93C1001093E100149001001C7C7F1B7838600000D9
-S2190299BC3BA00001380000002C1FFFFE41820040418100102C32
-S2190299D11FFFFD4182004C480000502C1FFFFF408200483D2008
-S2190299E60003812935982C0900003BA9FFFF4181003C7D3D4BD1
-S2190299FB78408200343BA0FFFD4800002C3D20000039293200A6
-S219029A103D6000039069001893EB3598480000143BE00000487F
-S219029A250000083BFF0001380000012C000000418200803D20DD
-S219029A3A00003BC93200813E00182C090000418200188069000A
-S219029A4F0080090014388000047C0803A64E8000213D20000425
-S219029A64392994A857E028347C004A143D2000032C03000090BC
-S219029A791E001893E93598813E00184182001C8069000080092A
-S219029A8E0014388000057C0803A64E8000214800001880690086
-S219029AA30080090014388000047C0803A64E8000217FA3EB78AD
-S219029AB88001001C7C0803A683A1000C83C1001083E100143894
-S219029ACD2100184E80002039400001380000002C03FFFE4182B5
-S219029AE20040418100102C03FFFD4182004C480000502C03FF56
-S219029AF7FF408200483D2000038129359C2C0900003949FFFFBA
-S219029B0C4181003C7D2A4B78408200343940FFFD4800002C3DB9
-S219029B21200000392932003D60000390090014906B359C480013
-S219029B360014386000004800000838630001380000012C000016
-S219029B4B00418200283D200004392994A8546028343D60000067
-S219029B607C004A14396B32003D200003900B00149069359C7DE3
-S219029B754353784E8000204E8000204E8000209421FFF87C08CC
-S219029B8A02A69001000C3D600000392B320081290018800B32C8
-S219029B9F002C0000134082002038000014900B32008069000087
-S219029BB480090014388000057C0803A64E8000218001000C7C16
-S219029BC90803A6382100084E8000209421FFE87C0802A693E144
-S219029BDE00149001001C3D20000039293200816900183800007F
-S219029BF30090010008812B0000800B00187C651B787C8623785D
-S219029C087D234B78388100087C0803A64E800021800100087CFB
-S219029C1D7F1B782C000000418200103D200003806938704800E1
-S219029C3201917FE3FB788001001C7C0803A683E1001438210014
-S219029C47184E8000209421FFE87C0802A693A1000C93C100108F
-S219029C5C93E100149001001C380000407C0903A63D2000003D77
-S219029C7160000339293200396B9994394000007D69512E394AAE
-S219029C8600044200FFF83D2000043D600003392994A8396B99A9
-S219029C9B9439000000550A283438080001390000087D0903A674
-S219029CB07D69512E394A00044200FFF87C0803782C08000240FE
-S219029CC581FFDC3FA0000038000013901D32003D6000033BBD86
-S219029CDA3200396B3240917D00043D200000392930003D600088
-S219029CEF03913D0008396B9960917D00403D20000339299970CA
-S219029D043D600003913D0010396B9940917D00483D2000033959
-S219029D1929999C3D600003913D0030396B9AD43D400003917D92
-S219029D2E0034394A9B7C3D200003915D002039299B80913D0092
-S219029D431C3860FFFE4BFFFC553860FFFE4BFFFD85380000001F
-S219029D58901D0024901D0028901D004C3D200003901D004439C6
-S219029D6D2985BC913D008C8001001C7C0803A683A1000C83C1D8
-S219029D82001083E10014382100184E8000207C8423794182007F
-S219029D97243884FFFF7C0320AE2C0000034082000C38600001EF
-S219029DAC4E8000202C0400004082FFE4386000004E80002094BE
-S219029DC121FFF87C0802A69001000C7C631B793D200003380991
-S219029DD69DF841820008800300943D200000392932008129005F
-S219029DEB8C7C0303787D2803A64E8000218001000C7C0803A6DF
-S219029E00382100084E8000209421FFF07C0802A693C100089338
-S219029E15E1000C900100143D200000800932007C7F1B782C00CD
-S219029E2A0014396932007C9E23783860FFFF4082001C812B005F
-S219029E3F183880000680690000800900147C0803A64E8000218F
-S219029E547C1F18004082001C7FE3FB787FC4F3784BFFFD717CAA
-S219029E69601B797C030378408200287FE3FB787FC4F3784BFF38
-S219029E7EBF6D7C601B787C09FE707D2302787C6348507C63FECC
-S219029E93707C031838800100147C0803A683C1000883E1000CF6
-S219029EA8382100104E800020280500037C691B78408100107C52
-S219029EBD801B78700B0003418200302C05000038A5FFFF4D822A
-S219029ED20020880400002C0500009809000038840001392900D7
-S219029EE70138A5FFFF4082FFE84E8000202805000F7C6B1B7836
-S219029EFC408100388004000038A5FFF0900B0000852400042891
-S219029F1105000F952B000484040004940B000485240004952BC0
-S219029F26000438840004396B00044181FFD02805000340810031
-S219029F3B208004000038A5FFFC28050003900B00003884000403
-S219029F50396B00044181FFE82C0500007D695B7838A5FFFF4D92
-S219029F65820020880400002C05000098090000388400013929C1
-S219029F7A000138A5FFFF4082FFE84E800020280500037C691B28
-S219029F8F784081000C70600003418200282C05000038A5FFFFA7
-S219029FA44D8200202C050000988900003929000138A5FFFF40E2
-S219029FB982FFF04E8000205484063E5480402E7C00237854095B
-S219029FCE801E7C004B787C6B1B782805000F40810024900B0064
-S219029FE300940B000438A5FFF0940B00042805000F940B000471
-S219029FF8396B00044181FFE4280500034081001838A5FFFC28F7
-S21902A00D050003900B0000396B00044181FFF02C0500007D6924
-S21902A0225B784D8200207CA903A698890000392900014200FFCD
-S21902A037F84E8000209421FFA87C631B79394100087D47537847
-S21902A04C39000000408200143800003098010008394100094815
-S21902A0610000247C032B967D2029D67D2918507D6648AE7C037D
-S21902A0760379996A0000394A00014082FFE47C0A3800418200A5
-S21902A08B287D0343787CE93B788C0AFFFF386300017C0A480040
-S21902A0A098040000388400014082FFEC7C681B78380000009857
-S21902A0B50400007D034378382100584E8000209421FF987C08E1
-S21902A0CA02A67D80002692410030926100349281003892A10007
-S21902A0DF3C92C1004092E10044930100489321004C93410050DF
-S21902A0F4936100549381005893A1005C93C1006093E1006490F0
-S21902A10901006C9181002C7C9923788BB900003AE100082C1D2F
-S21902A11E00007EF2BB787C7B1B787CB82B783BC000003AA0004C
-S21902A133003B390001418204802C1D00254082043C8BB90000A0
-S21902A1483B3900012C1D002D3AC000003BE00000408200108B9E
-S21902A15DB900003B3900013AC000012C1D0030408200148BB92A
-S21902A17200003B8000013B390001480000083B800000381DFF41
-S21902A187D0280000094181003C7FA3EB787F24CB787FE9FB7877
-S21902A19C1D29000A3929FFD07D291A1488640000388400013871
-S21902A1B103FFD0280000094081FFE47D3F4B787C9923787C7DC3
-S21902A1C61B782C1D002E4082003C8BB900003B390001381DFF68
-S21902A1DBD0280000093B9C0001418100247F24CB7888640000D7
-S21902A1F0388400013803FFD0280000094081FFF07C7D1B787CA3
-S21902A2059923782C1D006C3A8000004082000C8BB900003B3914
-S21902A21A0001381DFFA8280000203A790001418101F83D6000D7
-S21902A22F03396B26A85400103A7D4B002E3D200003392926A87A
-S21902A2447D4A4A147D4903A64E800420386000307F6803A63BE5
-S21902A2598000013BE000084E800021386000787F6803A64E80E8
-S21902A26E0021897800005569063E38090001280000084181007C
-S21902A2831C801800085529103A396B00017C604A14997800004B
-S21902A29848000030280900074181001C807800043800000839A7
-S21902A2AD23000498180000913800044800001080780004380362
-S21902A2C20004901800042C1D0064806300004182002841810093
-S21902A2D7102C1D00584182004C480000602C1D00704182003453
-S21902A2EC2C1D00784182002C4800004C2C0300004080000C3ADD
-S21902A30180002D7C6300D03CC0000338C626703881000838A0B8
-S21902A316000A480000203CC0000338C6267C4800000C3CC000CA
-S21902A32B0338C626903881000838A000104BFFFD057C751B78E6
-S21902A3407E579378480000EC897800005569063E380900012880
-S21902A3550000084181001C801800085529103A396B00017C601D
-S21902A36A4A149978000048000030280900074181001C807800E2
-S21902A37F04380000083923000498180000913800044800001049
-S21902A39480780004380300049018000482E300007EE3BB784885
-S21902A3A90003C97C751B7848000080897800005569063E38093C
-S21902A3BE0001280000084181001C801800085529103A396B0068
-S21902A3D3017D404A149978000048000030280900074181001CB3
-S21902A3E88158000438000008392A000498180000913800044810
-S21902A3FD00001081580004380A000490180004886A00037F6889
-S21902A41203A63BDE00014E8000214800018C3860003F7F6803E6
-S21902A427A63BDE00014E8000217F55F8503134FFFF7D294910EC
-S21902A43C381AFFFF7C0048782F9C00007F4948387D3A03782C07
-S21902A451140000419E00243BA00030418200207E83A3787F68E7
-S21902A46603A63BDE00013A8000004E800021480000083BA00043
-S21902A47B202C1400002E1600003AD5FFFF7F8000264092003CE1
-S21902A4907F40D3782C0000003B5AFFFF4081002C7F5FD3787F52
-S21902A4A5A3EB787F6803A63BDE00014E8000217FE0FB782C00FE
-S21902A4BA00003BFFFFFF4181FFE47FFAFB787F880120418200D2
-S21902A4CF147E83A3787F6803A63BDE00014E8000217EA0AB7867
-S21902A4E42C0000007ED5B378408100547EBDAB787EFCBB788B07
-S21902A4F9FC00007F6803A67FE3FB783B9C00013BDE00014E8026
-S21902A50E00212C1F000A408200143860000D7F6803A63BDE0097
-S21902A523014E8000217FA0EB782C0000003BBDFFFF4181FFC403
-S21902A5387F97E3787FB5EB78419200687F40D3782C0000003B53
-S21902A54D5AFFFF408100587F5FD378386000207F6803A63BDEF7
-S21902A56200014E8000217FE0FB782C0000003BFFFFFF4181FFF6
-S21902A577E4480000307FA3EB787F6803A63BDE00013A79000189
-S21902A58C4E8000212C1D000A408200143860000D7F6803A63B2B
-S21902A5A1DE00014E8000218BB900007E799B782C1D0000408277
-S21902A5B6FB887FC3F3788001006C8181002C7C0803A68241004E
-S21902A5CB30826100348281003882A1003C82C1004082E1004469
-S21902A5E0830100488321004C8341005083610054838100588378
-S21902A5F5A1005C83C1006083E100647D808120382100684E80B4
-S21902A60A00203D2000038169387438000000986B0000396B003F
-S21902A61F0191693874980B00004E8000209421FF707C0802A697
-S21902A63493A1008493C1008893E1008C900100943D6000039021
-S21902A649A10010906B387438A100083BA1009838000002396075
-S21902A65E00003C60000390A100789081000C90C1001490E100A5
-S21902A673189101001C91210020914100249801007099610071C9
-S21902A68893A100743863A60C38A100704BFFFA31800100947C72
-S21902A69D0803A683A1008483C1008883E1008C382100904E80D5
-S21902A6B200209421FF707C0802A693A1008493C1008893E10014
-S21902A6C78C9001009490A100109081000C7C641B7890610008FC
-S21902A6DC38A100083BA1009838000001396000003C600003900C
-S21902A6F1A1007890C1001490E100189101001C912100209141F4
-S21902A7060024980100709961007193A100743863A96838A10072
-S21902A71B704BFFF9A9800100947C0803A683A1008483C1008810
-S21902A73083E1008C382100904E8000209421FFF87C0802A690DE
-S21902A74501000C7C601B787C8523783C6000033863A9687C0415
-S21902A75A03784BFFF9698001000C7C0803A6382100084E8000D3
-S21902A76F2088030000392000004800000C880300003929000188
-S21902A7842C000000386300014082FFF07D234B784E8000207C73
-S21902A799691B78480000102C030000386000004D8200208869A9
-S21902A7AE000088040000388400017C030000392900014182FFA2
-S21902A7C3E07C6018504E800020880400007C691B78480000100C
-S21902A7D89803000088040000386300012C000000388400014079
-S21902A7ED82FFEC38000000980300007D234B784E8000207C6BD8
-S21902A8021B78480000102C030000386000004D820020886B00A6
-S21902A81700396B00013803FFBF280000194181000C380300201D
-S21902A82C5403063E89240000388400013809FFBF28000019418A
-S21902A84181000C380900205409063E7D204B787C0300004182CA
-S21902A856FFB47C6018504E8000207CA02B797C691B787C090341
-S21902A86BA640820014386000004E8000207C6018504E8000209D
-S21902A8808869000088040000388400017C030000392900014060
-S21902A89582FFE42C030000418200084200FFE0386000004E80C1
-S21902A8AA00207CA02B797C6B1B787C0903A64082001838600098
-S21902A8BF004E8000207C6018504E80002042400050886B000098
-S21902A8D4396B00013803FFBF280000194181000C38030020540C
-S21902A8E903063E89240000388400013809FFBF280000194181A0
-S21902A8FE000C380900205409063E7D204B787C0300004082FF90
-S21902A913B42C0300004082FFB4386000004E8000204800002CD6
-S21902A9288923000088040000388400017C0900003863000141BC
-S21902A93D8200148803FFFF8864FFFF7C6300504E8000207CA0BC
-S21902A9522B782C00000038A5FFFF4082FFCC386000004E80004C
-S21902A967209421FFE87C0802A69381000893A1000C93C100102C
-S21902A97C93E100149001001C3D200003800937E87C7D1B782CCA
-S21902A991000000408200743D200000392932008009003438602E
-S21902A9A6FFFF7C0803A67D3E4B783BE000004E8000217C7C1BCF
-S21902A9BB78813E00347FE3FB787D2803A64E800021813E001430
-S21902A9D07FA4EB78806900008009000C7C0803A64E8000213714
-S21902A9E5FF00014081FFD43D20000039293200800900347F8312
-S21902A9FAE3787C0803A64E800021480000483D20000039293249
-S21902AA0F00816900142C0B00004182001C806B0000800B000C95
-S21902AA247FA4EB787C0803A64E8000214800001C816900187F8F
-S21902AA39A4EB78806B0000800B000C7C0803A64E8000218001DB
-S21902AA4E001C7C0803A68381000883A1000C83C1001083E100AF
-S21902AA6314382100184E8000209421FFF07C0802A693E1000C14
-S21902AA78900100143D20000039293200816900147C7F1B782C74
-S21902AA8D0B00004082000881690018806B0000800B00107C08CC
-S21902AAA203A64E800021987F0000800100147C0803A683E100C3
-S21902AAB70C382100104E8000209421FFE07C0802A69361000C60
-S21902AACC9381001093A1001493C1001893E1001C900100243D14
-S21902AAE1200003800937E87C7D1B782C000000408200883D202F
-S21902AAF6000039293200800900343860FFFF7C0803A67D3C4B2C
-S21902AB0B783BE000004E8000217C7B1B78813C00347FE3FB785C
-S21902AB207D2803A64E800021817C00147FA4EB78806B000080DA
-S21902AB350B001C7C0803A64E8000217C7E1B7941820010881DBB
-S21902AB4A00002C0000004082004C37FF00014081FFC03D2000A1
-S21902AB5F0039293200800900347F63DB787C0803A64E80002138
-S21902AB74480000643D20000039293200816900142C0B000041B2
-S21902AB89820034806B0000800B001C7FA4EB7848000034817C69
-S21902AB9E00307FE3FB787D6803A63D200003380000019009379F
-S21902ABB3E84E80002148000020816900187FA4EB78806B0000D4
-S21902ABC8800B001C7C0803A64E8000217C7E1B787FC3F37880F4
-S21902ABDD0100247C0803A68361000C8381001083A1001483C18A
-S21902ABF2001883E1001C382100204E8000209421FFE87C080226
-S21902AC07A69381000893A1000C93C1001093E100149001001C96
-S21902AC1C3D200003800937E87C7D1B782C000000408200803DDD
-S21902AC3120000039293200800900343860FFFF7C0803A67D3E18
-S21902AC464B783BE000004E8000217C7C1B78813E00347FE3FB4A
-S21902AC5B787D2803A64E800021813E00142C0900004182001C41
-S21902AC708069000080090014388000077FA5EB787C0803A64E81
-S21902AC8580002137FF00014081FFC83D200000392932008009D9
-S21902AC9A00347F83E3787C0803A64E800021480000303D20001C
-S21902ACAF0039293200812900142C0900004182001C806900003A
-S21902ACC480090014388000077FA5EB787C0803A64E8000213D38
-S21902ACD920000039293200812900182C0900004182001C8069EC
-S21902ACEE0000800900147FA5EB78388000077C0803A64E80006C
-S21902AD03218001001C7C0803A68381000883A1000C83C10010B9
-S21902AD1883E10014382100184E8000209421FFD07C0802A69305
-S21902AD2D01001093210014934100189361001C9381002093A1CD
-S21902AD42002493C1002893E1002C900100347C7D1B787CBE2BFF
-S21902AD57787FBFEB783B6000003F2000033F8000033B4000008D
-S21902AD6C813938102C09000041820020896900002C0B00004147
-S21902AD81820014380900019961000890193810480000647FC000
-S21902AD96FE707C1E005054000FFE7FE9EA78216900007D2B49A3
-S21902ADAB147C0B48394182003C386000324BFFFE4948000008C6
-S21902ADC03BDEFFCE2C1E000040810014386100084BFFFCF17C1E
-S21902ADD57B1B794182FFE82C1B0000408200143860FFFF4800AE
-S21902ADEA0180386100084BFFFC7D880100089B5F00007C03035B
-S21902ADFF785400063E2C00000D4182007C418100282C00000892
-S21902AE14418200D4418100102C00000341820038480001142C06
-S21902AE2900000A41820058480001082C00002B418200E84181D3
-S21902AE3E00102C000024418200DC480000F02C00007F41820053
-S21902AE5398480000E47C1FE800408200183C6000033863273031
-S21902AE684BFFF84D3860FFFE480000F8987F00003BFF00013FD9
-S21902AE7D000003480000DC892100083F0000032C09000A40829D
-S21902AE920010881835A02C00000D418200182C09000D40820007
-S21902AEA718881835A02C00000A4082000C9B410008480000A42E
-S21902AEBC801C38082C000000418200143860000D4BFFFA9D38DD
-S21902AED160000A4BFFFA958801000838600001981835A048002B
-S21902AEE600847C1FE8003F0000034182006C801C38082C0000D0
-S21902AEFB004182001C386000084BFFFA65386000204BFFFA5DBA
-S21902AF10386000084BFFFA553BFFFFFF480000407C1FE8004069
-S21902AF258200145463063E4BFFD1393860000048000034801C7B
-S21902AF3A38082C0000004182000C886100084BFFFA21880100E1
-S21902AF4F083F000003981F00003BFF000188010008981835A094
-S21902AF644BFFFE08800100347C0803A6830100108321001483D0
-S21902AF794100188361001C8381002083A1002483C1002883E127
-S21902AF8E002C382100304E8000209421FFC07C0802A692410091
-S21902AFA3089261000C9281001092A1001492C1001892E1001C27
-S21902AFB89301002093210024934100289361002C9381003093FE
-S21902AFCDA1003493C1003893E1003C900100447C9D23787C7CD6
-S21902AFE21B787D3DE0107D2949107D294BB87C1CE8507C0048DA
-S21902AFF7787FA948387D3D03797CB62B78408101403E40000390
-S21902B00C2C16000041820014387227347C96E0504BFFF69948A7
-S21902B021000010387227347F84E3784BFFF6897FBEEB787F9D1B
-S21902B036E3783BE000003E8000033EA000033E6000033B5EFFAD
-S21902B04BF03AFD00103F0000033F6000033F2000037C1FF000E1
-S21902B060408000147C9DF8AE387827404BFFF6494800000C3815
-S21902B0757927484BFFF63D7FFCFE707C1CF8507C000E707C001B
-S21902B08A02147C00F8502C0000014082000C387B274C4BFFF66F
-S21902B09F1957801F7E7C1F02147C001E70540018387C00F850E5
-S21902B0B42C0000074082000C387B274C4BFFF5F53BFF00012CBE
-S21902B0C91F000F4081FF907FBCEB787FDDF378387427504BFF1B
-S21902B0DEF5D97EBEAB783BE000007C1FE8004080002C7C9CF88F
-S21902B0F3AE3804FFE02000005E7C0001107C0003B87C0900F8B9
-S21902B1087C8000387129002E7C044B784800000838800020388C
-S21902B11D7E27544BFFF5953BFF00012C1F000F4081FFBC38738D
-S21902B13227584BFFF5817F5DD3797EFCBB784181FECC800100E0
-S21902B147447C0803A6824100088261000C8281001082A1001477
-S21902B15C82C1001882E1001C8301002083210024834100288322
-S21902B17161002C8381003083A1003483C1003883E1003C382134
-S21902B18600404E8000209421FFF87C0802A69001000C38A00032
-S21902B19B004BFFFDFD8001000C7C0803A6382100084E8000204B
-S21902B1B09421FF607C0802A69361008C9381009093A1009493C4
-S21902B1C5C1009893E1009C900100A49081000C388100A83FA073
-S21902B1DA00033B800000380000013961000890810074837D3803
-S21902B1EF109061000890A1001090C1001490E100189101001C5E
-S21902B204912100209141002498010070916100789B810071382E
-S21902B2198100704BFFF5213C6000033863275C4BFFF48D939D10
-S21902B22E3810386100803880000838A000004BFFFAE9886100F5
-S21902B24380937D381068600059212000007C09011468630079D7
-S21902B258212300007C6919147C630378800100A47C0803A68355
-S21902B26D61008C8381009083A1009483C1009883E1009C382157
-S21902B28200A04E8000209421FFE87C0802A69381000893A1000A
-S21902B2970C93C1001093E100149001001C7C9C23787CBD2B7867
-S21902B2AC7C7F1B783BC00000480000C857C0103A7FFD012E8859
-S21902B2C11F00003BDE000148000098881F00002C0000224082A1
-S21902B2D6008457C0103A7D60EA14812BFFFC7C09F800408200B6
-S21902B2EB0C3BFF000193EBFFFC893F0000692000227C0000D0C8
-S21902B3007D2900D055290FFE54000FFE7D2B00394182002C7F80
-S21902B315E3FB788D230001692000227C0000D07D2900D055292A
-S21902B32A0FFE54000FFE7D2B00394082FFE47C7F1B78881F00DE
-S21902B33F002C0000004082002C3C600003386327744BFFF36561
-S21902B354480000083BFF0001881F00002C0000004182004C2C44
-S21902B3690000204082FF6038000000981F00003BFF0001881FB6
-S21902B37E00002C0000004182002C2C000020408200187FE3FB15
-S21902B393788C0300012C0000204182FFF87C7F1B78881F00005B
-S21902B3A82C0000004082FF0C3C6000033C80000380BD00009362
-S21902B3BDDC000038633688388436F8480000258001001C7C08C7
-S21902B3D203A68381000883A1000C83C1001083E1001438210055
-S21902B3E7184E8000209421FFD87C0802A6930100089321000C30
-S21902B3FC93410010936100149381001893A1001C93C1002093C6
-S21902B411E100249001002C7C7F1B787CBC2B787C9A23787F8341
-S21902B426E3784BFFF3497FFDFB787C1DD0007C7B1B7841820084
-S21902B43BC0809D00007F83E3787F65DB784BFFF4652C030000B2
-S21902B4504082009C807D00004BFFF3197C03D800408100847C17
-S21902B4651FD0003BC00001418200603F0000033F2000037C1D80
-S21902B47AF80041820044809F00007F83E3787F65DB784BFFF4C6
-S21902B48F212C0300004082002C2C1E00004182001880BD000001
-S21902B4A4387827887F84E3784BFFF2093BC00000809F00003838
-S21902B4B97927B04BFFF1F93BFF00107C1FD0004082FFB02C1E83
-S21902B4CE0000408200143C600003386327B44BFFF1D94800001B
-S21902B4E3187FA3EB78480000143BBD00107C1DD0004082FF48DA
-S21902B4F8386000008001002C7C0803A6830100088321000C8307
-S21902B50D410010836100148381001883A1001C83C1002083E1B5
-S21902B5220024382100284E8000209421FFE87C0802A69381009E
-S21902B5370893A1000C93C1001093E100149001001C7C601B78A8
-S21902B54C3C6000037C9D23787C1F03787CBE2B78386327B84BD8
-S21902B561FFF1557C1FE800418200283F80000380BF000080DFBB
-S21902B5760008387C27C07FC4F3784BFFF1353BFF00107C1FE82B
-S21902B58B004082FFE48001001C7C0803A68381000883A1000CF9
-S21902B5A083C1001083E10014382100184E800020912300149804
-S21902B5B583000090A3000490C3000890E3000C910300104E8074
-S21902B5CA00209421FFB07C0802A691C1000891E1000C9201004A
-S21902B5DF1092210014924100189261001C9281002092A10024F5
-S21902B5F492C1002892E1002C93010030932100349341003893D6
-S21902B60961003C9381004093A1004493C1004893E1004C9001CF
-S21902B61E00547D344B787D1643783016FFFF7D20B1106A80006E
-S21902B63301216000007C0B01147D2B00397C701B787C982378CE
-S21902B6487CD133787CF53B787D5353783B4000013A40000041F8
-S21902B65D820008925600007C12A8007E3F8B78408000507EA932
-S21902B67203A67FEBFB7839000000812B00102C09000041820049
-S21902B6870891090000814B00042C0A000040820020800B00088A
-S21902B69C2C0000004182000C2C0000024082000C812B000C9152
-S21902B6B1490000396B00184200FFC47CBD2B787C1D80004080BE
-S21902B6C602043DC000033DE0000357BE103A7C9EC02E8804004F
-S21902B6DB002C00002D4082014C396000007C0BA8008AE40001B4
-S21902B6F07E3F8B78392000003B7D0001408001147F9EC2143B69
-S21902B705200001881F00007C170000408200F0813F00102C0916
-S21902B71A000041820020800900002C00000041820014809F0085
-S21902B72F14386E27CC4BFFEF813B400000801F00042C0000004D
-S21902B74441820080813C0000880900023BC900032C00003D41A5
-S21902B75982000C83DC00043BBD0001801F00082C000000418254
-S21902B76E00102C0000014182003C48000040809F000C7FC3F39B
-S21902B7837838A0000038C00000480001992C030000408200246B
-S21902B79880BF00147FC4F378386F27EC4BFFEF113B40000048CD
-S21902B7AD00000C813F000C93C90000813F00103B7D000148007B
-S21902B7C20034801F00082C000000418200102C000002418200A0
-S21902B7D71C48000020817F000C812B000039290001912B0000FB
-S21902B7EC4800000C813F000C9329000039600001480000143936
-S21902B8012900017C09A8003BFF00184180FEFC2C0B00004082CE
-S21902B81600A83C600003386328147EE4BB784BFFEE9148000052
-S21902B82B902C160000418200782C12000041820014386E27CC46
-S21902B8407E649B784BFFEE713B4000002C140000418200102C94
-S21902B8551400014182003C480000407C7EC02E7EC4B37838A00E
-S21902B86A000038C00000480000B52C030000408200247C9EC0DE
-S21902B87F2E386F27EC7E659B784BFFEE2D3B4000004800000C9B
-S21902B8947C1EC02E901600003B7D00013A400001480000183C9A
-S21902B8A9600003386328343B7D00014BFFEE013B4000007F7DC0
-S21902B8BEDB787C1D80004180FE0C7F43D378800100547C0803CE
-S21902B8D3A681C1000881E1000C820100108221001482410018D6
-S21902B8E88261001C8281002082A1002482C1002882E1002C835E
-S21902B8FD01003083210034834100388361003C8381004083A1A2
-S21902B912004483C1004883E1004C382100504E80002088030077
-S21902B9270038E000012C0000203900000A3980000040820010D1
-S21902B93C8C0300012C0000204182FFF8880300002C0000004161
-S21902B95182012C2C07000041820038880300002C000030408254
-S21902B966002C892300013809FFBF280000194181000C3809009D
-S21902B97B205409063E2C0900784082000C39000010386300028E
-S21902B9908943000038E00000392AFFD0380AFFBF2129000939F9
-S21902B9A52000007D29491420000005380000007C0001147D2BCD
-S21902B9BA0379386300013920000040820010380AFF9F28000026
-S21902B9CF0541810008392000012C09000041820068392AFFD0A1
-S21902B9E45520063E280000094181000C7D2B4B78480000303874
-S21902B9F90AFF9F280000054181000C396AFFA94800001C380A9E
-S21902BA0EFFBF200000057C0001107C0003B8392AFFC97C0B487B
-S21902BA23387C0B40004080001C880300007D2C41D62C000000B5
-S21902BA387D895A144082FF184800003C2C0600004182002C8878
-S21902BA4D060000480000088C0600012C000000418200187C0A67
-S21902BA6200004082FFF0880600002C0000004082000C386000F7
-S21902BA77004E8000202C050000918400004182000890650000BF
-S21902BA8C386000014E800020880300002C000020408200108CE2
-S21902BAA10300012C0000204182FFF88863000068690074200926
-S21902BAB600007D20491468600054214000007C0A01147D2B03B7
-S21902BACB794182001038000001900400004800003068690046B7
-S21902BAE0200900007D20491468600066214000007C0A01147C81
-S21902BAF50A4B794082000C386000004E80002091640000386086
-S21902BB0A00014E8000209421FFE07C0802A69361000C9381005C
-S21902BB1F1093A1001493C1001893E1001C900100243D200004A0
-S21902BB3439699534800BFFD47C9C23782C0000007CDB3378410A
-S21902BB4982000C3800000A4800012838000001B0099534880359
-S21902BB5E0000396B00022C0000002F85000041820018980B00C7
-S21902BB73008C030001396B00012C0000004082FFF0380000006C
-S21902BB88980B0000396B0001409E00103D200003386928684892
-S21902BB9D00001C2C0500014182000C3800000A480000CC3D20BC
-S21902BBB2000338692874880300002C00000041820018980B0002
-S21902BBC7008C030001396B00012C0000004082FFF03D200004EF
-S21902BBDC3BA9951C38000000980B00007FA3EB78388000003868
-S21902BBF1A0000C4BFFE3953D600003812B35A83BFDFFEC380046
-S21902BC060001B13F0018B01F001AA01C0004392900012C0000E1
-S21902BC1B003BC00000912B35A893DF00144082000C38000045A8
-S21902BC30B01C00047F85E378387D0018388002057FA6EB78486D
-S21902BC450033A92C0300004180002838000001901DFFEC3920C5
-S21902BC5AFFFF93DF0004913F001093DF000C93DF0008386000EA
-S21902BC6F004800001038000009901B00003860FFFF800100243A
-S21902BC847C0803A68361000C8381001083A1001483C10018835C
-S21902BC99E1001C382100204E8000203D200004380000009009F9
-S21902BCAE9508386000004E8000209421FFC87C0802A692C1005C
-S21902BCC31092E10014930100189321001C934100209361002446
-S21902BCD89381002893A1002C93C1003093E100349001003C7C3F
-S21902BCED9923783B6000007C1BC8003D2000043BC995347C7AE9
-S21902BD021B787CBC2B78408001783BFEFFD43B0100083AE00014
-S21902BD17043AC00009813F000C2C0900004081005C7C1BC8503C
-S21902BD2C7F890000809F02347F43D3784FFEE3827FA000265743
-S21902BD41BD07FE7FBD00D07C00E8787D3DE8387FBD03787FA587
-S21902BD56EB784BFFE159801F0234813F000C7C00EA147D3D48CD
-S21902BD6B50901F0234913F000C7F7BEA147F5AEA14480000FC98
-S21902BD80801F0010280001FF408100F83800000190010008390C
-S21902BD9520000091380004387F002C3880020538BF002038DFD5
-S21902BDAA00147F07C378480033697C631B794080002C813F00A5
-S21902BDBF04392900012C09000F913F000441810010801F000870
-S21902BDD42C00000040820044380000084800008CA81E00002C1B
-S21902BDE900000340820064813F0008A97E0002392900017C0B3A
-S21902BDFE48004082001C3863FFFC381E0004907F000C901F0247
-S21902BE1334917F0008907F0010A01F000AB2FE0000B01E00025F
-S21902BE28387F002C3880000438BF002038DF0014480031B52CC3
-S21902BE3D0300004080003892DC00003860FFFF480000382C003E
-S21902BE52000540820014A81E00023860FFFF901C0000480000A7
-S21902BE67203800000B901C00003860FFFF480000107C1BC80063
-S21902BE7C4180FEA07F63DB788001003C7C0803A682C100108257
-S21902BE91E10014830100188321001C8341002083610024838154
-S21902BEA6002883A1002C83C1003083E10034382100384E80009D
-S21902BEBB203803FFFF2800000B3D2000033869287C4D8100204C
-S21902BED03D600003396B29985400103A7D4B002E3D2000033924
-S21902BEE52929987D4A4A147D4903A64E8004203C600003386397
-S21902BEFA288C4E8000203C6000033863289C4E8000203C600002
-S21902BF0F03386328B04E8000203C600003386328D44E8000208E
-S21902BF243C600003386328EC4E8000203C600003386329004E14
-S21902BF398000203C600003386329144E8000203C6000033863AD
-S21902BF4E29244E8000203C600003386329384E8000203C600077
-S21902BF6303386329544E8000203C600003386329684E80002000
-S21902BF783C6000033863297C4E8000209421FFE87C0802A69385
-S21902BF8DA1000C93C1001093E100149001001C3D200003800969
-S21902BFA235B07C9F23782C0000004082007C480043113D200085
-S21902BFB70438699740800300042C00000540820018A0030016A7
-S21902BFCC2C00000040820050480043E5480000482C00000040AF
-S21902BFE1820014480008D93800000A981F0000480000603FA005
-S21902BFF60004389D9D8438A000804800444D2C0300003BBD9D40
-S21902C00B843D2000033D60000393A93890906B35B04082000CE3
-S21902C02038600000480000303D400003816A38903D00000388F9
-S21902C0350B0000396B0001981F0000812835B0916A38903929D5
-S21902C04AFFFF912835B0386000018001001C7C0803A683A100B7
-S21902C05F0C83C1001083E10014382100184E8000209421FFE0FA
-S21902C0747C0802A693A1001493C1001893E1001C900100243D4E
-S21902C0892000003BA932007C7E1B783BE000644800002837FFB3
-S21902C09EFFFF40820010480000513BE0006448000014813D0084
-S21902C0B348386000647D2803A64E8000217FC3F3783881000882
-S21902C0C84BFFFEBD2C0300004182FFCC88610008800100247C88
-S21902C0DD0803A683A1001483C1001883E1001C382100204E803B
-S21902C0F200209421FFE87C0802A693A1000C93C1001093E10032
-S21902C107149001001C3D2000043BA99E044800003080BE35B4D5
-S21902C11C7FE3FB787FA4EB784800443D7C631B7940810014801B
-S21902C1311E35B47FBD1A147C030050901E35B4480041813FC012
-S21902C1460003801E35B42C000000418200303D2000043BE99718
-S21902C15B40801F00042C0000054082000C7FE3FB784800424D3A
-S21902C170801F00042C0000004082FFA0480007413D2000003B5B
-S21902C185C93200801E00443D2000042C00000039299E043D6093
-S21902C19A00033D4000033BE00000912B389493EA35B44182003A
-S21902C1AF10386000004BFFDC0D93FE00448001001C7C0803A6FA
-S21902C1C483A1000C83C1001083E10014382100184E8000209470
-S21902C1D921FFF07C0802A693E1000C900100143D600003812B9D
-S21902C1EE38942C0400249889000039290001912B389440820047
-S21902C20310380000013D200003900938783FE00003801F3878BC
-S21902C218688B0023212B00007D6959143140FFFF7D2A01107DB1
-S21902C22D2058394182001C3D400003392000013D6000033800B3
-S21902C2420000912A387C900B38803D600003812B35B439290087
-S21902C257012C090100912B35B44182002C3D2000038009387C63
-S21902C26C2C000000418200283D600003812B3880392900012C0C
-S21902C281090003912B3880408200104BFFFE6938000000901FB7
-S21902C2963878800100147C0803A683E1000C382100104E800073
-S21902C2AB209421FFE87C0802A693A1000C93C1001093E1001463
-S21902C2C09001001C4800055D7C7D1B783C6000033C80000338E9
-S21902C2D5A000EC38842A9038632A884BFFE3D57FA3EB7848002F
-S21902C2EA05A58001001C7C0803A683A1000C83C1001083E100DC
-S21902C2FF14382100184E8000209421FFE87C0802A693A1000CA8
-S21902C31493C1001093E100149001001C480005017C7D1B783C5E
-S21902C3296000033C80000338A000FE38842AA038632A884BFFE3
-S21902C33EE3797FA3EB78480005498001001C7C0803A683A1007E
-S21902C3530C83C1001083E10014382100184E8000209421FFE8FB
-S21902C3687C0802A69381000893A1000C93C1001093E1001490B5
-S21902C37D01001C7C7D1B787C9E23784BFFFD6D3D2000038009A9
-S21902C39235AC3D6000001FE0000A3B8B320048000014813C00F7
-S21902C3A748386000647D2803A64E8000217FA3EB787FC4F378C6
-S21902C3BC4BFFFBC97C631B79408200102C1F00003BFFFFFF404F
-S21902C3D182FFD48001001C7C0803A68381000883A1000C83C1B1
-S21902C3E6001083E10014382100184E8000209421FF787C0802A2
-S21902C3FBA693C1008093E100849001008C7C8023782C000005CF
-S21902C41090A1001090C1001490E100189101001C9121002091D0
-S21902C4254100249081000C3BC000004182002C280000054181A0
-S21902C43A00102C00000441820194480003482C000006418203C3
-S21902C44F082C0000074182030C480003343FE00003801F35B897
-S21902C4643D6000032C00000039200001912B35BC4082001448CB
-S21902C4790011C1907F35B82C03000041820308811F35B838080F
-S21902C48EFFFF28000039418102F83D600003396B2AB0540010F5
-S21902C4A33A7D4B002E3D20000339292AB07D4A4A147D4903A61D
-S21902C4B84E8004203D20FF0061290014816900007C0006AC392B
-S21902C4CD48FFFF3C0080007C0054307D6B0378916900007C0078
-S21902C4E206AC480002A83D20FF0061290200A00900007C000687
-S21902C4F7AC60000008B00900007C0006AC480002883D20FF0000
-S21902C50C61290200A00900007C0006AC60000004B00900007C17
-S21902C5210006AC480002683D20FF0061290240A00900007C004D
-S21902C53606AC60000004B00900007C0006AC480002483D20FFFE
-S21902C54B0061290220A00900007C0006AC60000008B009000030
-S21902C5607C0006AC480002283D20FF0061290220A00900007CF2
-S21902C5750006AC60000004B00900007C0006AC480002083D20FE
-S21902C58AFF0061290940800900007C0006AC6000008090090093
-S21902C59F007C0006AC480001E83D20FF00612909488169000000
-S21902C5B47C0006AC3948FFE53C0080007C0054307D6B03789128
-S21902C5C96900007C0006AC480001BC3D60000383CB35BC3800A3
-S21902C5DE0000900B35BC3D200003814935B82C0A0000418201A4
-S21902C5F39C7D4853783808FFFF280000394181018C3D60000372
-S21902C608396B2B985400103A7D4B002E3D20000339292B987D19
-S21902C61D4A4A147D4903A64E8004203D20FF0061290014816914
-S21902C63200007C0006AC3948FFFF3C0080007C0054307D6B009B
-S21902C64778916900007C0006AC4800013C3D20FF0061290200CA
-S21902C65CA00900007C0006AC7000FFF75400043EB00900007CBA
-S21902C6710006AC480001183D20FF0061290200A00900007C008D
-S21902C68606AC7000FFFB5400043EB00900007C0006AC480000B7
-S21902C69BF43D20FF0061290240A00900007C0006AC7000FFFB26
-S21902C6B05400043EB00900007C0006AC480000D03D20FF00611C
-S21902C6C5290220A00900007C0006AC7000FFF75400043EB00982
-S21902C6DA00007C0006AC480000AC3D20FF0061290220A0090071
-S21902C6EF007C0006AC7000FFFB5400043EB00900007C0006AC1A
-S21902C704480000883D20FF0061290940800900007C0006AC540F
-S21902C71900066E900900007C0006AC480000683D20FF00612933
-S21902C72E0948816900007C0006AC3948FFE53C0080007C005495
-S21902C743307D6B0078916900007C0006AC4800003C3D2000033E
-S21902C75883C935B8480000303961000838010090392000039BB2
-S21902C76DC100719921007090010074916100783D200003800BFA
-S21902C782000883C935AC900935AC7FC3F3788001008C7C0803AB
-S21902C797A683C1008083E10084382100884E8000209421FFE0D1
-S21902C7AC7C0802A693A1001493C1001893E1001C900100247CD0
-S21902C7C17D1B787C9F23787CA32B784BFFCEAD38000000901F28
-S21902C7D600007FA3EB78388100084BFFF7A52C03000041820029
-S21902C7EB18880100082C0000034082000C38000001901F0000A4
-S21902C80038600001800100247C0803A683A1001483C10018839A
-S21902C815E1001C382100204E8000209421FFE87C0802A69381C7
-S21902C82A000893A1000C93C1001093E100149001001C3FA00032
-S21902C83F003BBD3200813D00343860FFFF7D2803A64E800021EE
-S21902C854801D00347C7C1B78386000007C0803A64E8000217F39
-S21902C86983E3788001001C7C0803A68381000883A1000C83C18B
-S21902C87E001083E10014382100184E8000209421FFF87C080285
-S21902C893A69001000C3D20000039293200800900347C0803A66B
-S21902C8A84E8000218001000C7C0803A6382100084E80002094E8
-S21902C8BD21FFE87C0802A693A1000C93C1001093E1001490016E
-S21902C8D2001C3FA000003BBD3200817D00343D20000380693872
-S21902C8E7887D6803A63D20000338000000900937E84E800021E0
-S21902C8FC801D00303D2000038069388C7C0803A64E8000213DED
-S21902C91120000338000001900938088001001C7C0803A683A1E7
-S21902C926000C83C1001083E10014382100184E8000209421FF0A
-S21902C93BE87C0802A693A1000C93C1001093E100149001001CF3
-S21902C9503FA000003BBD3200811D00343860FFFF7D0803A63DEF
-S21902C965400003392000013D60000338000000912A37E8900BCC
-S21902C97A38084E8000213D20000390693888813D0034386000CF
-S21902C98F017D2803A64E800021813D00303860FFFF7D2803A67C
-S21902C9A44E8000213D200003801D00309069388C386000017C89
-S21902C9B90803A64E8000218001001C7C0803A683A1000C83C184
-S21902C9CE001083E10014382100184E8000209421FFE87C080244
-S21902C9E3A69381000893A1000C93C1001093E100149001001C9D
-S21902C9F83FE00003801F35C02C000000408200A03FA000003BC5
-S21902CA0DBD3200813D00343860FFFF7D2803A64E800021813D9B
-S21902CA2200347C7C1B78386000017D2803A64E800021815D0085
-S21902CA37143D2000033929C2AC912A00043D600003396BC308D1
-S21902CA4C3D200003916A00083929C1D8912A000C3D60000339D0
-S21902CA616BC0703D200003916A00103929C3F4912A00143D602E
-S21902CA760003396BC7A83D200003916A00183929C364912A00D7
-S21902CA8B1C801D00347F83E3787C0803A64E80002138000001F0
-S21902CAA0901F35C03D2000033FA00004A08937FA387D97404865
-S21902CAB50038313BBD9740801D00043D20000390093884800156
-S21902CACA001C7C0803A68381000883A1000C83C1001083E10013
-S21902CADF14382100184E8000209421FFF07C0802A693E1000C78
-S21902CAF490010014480037C93D2000043BE997403D20000381FC
-S21902CB097F0004800938847C005800418200602C0B0004408254
-S21902CB1E00484BFFFE193C6000043D20000439299E043C800091
-S21902CB330338C39D843CA00003396000013940000D3D00000388
-S21902CB483CE000033800000090C43890916535B099439D8491F5
-S21902CB5D283894900735B4801F00042C000000408200084BFF65
-S21902CB72FE6D3D200004800997443D600003900B3884800100FF
-S21902CB87147C0803A683E1000C382100104E8000209421FFE8EE
-S21902CB9C7C0802A693A1000C93C1001093E100149001001C3D3B
-S21902CBB120000380E937FC2C070000408200283D0000033920F3
-S21902CBC600013D6000033D40000338002328912837F490EB3818
-S21902CBDBB8900A37F84800007C3C6000033C80000338632A04D2
-S21902CBF0388438B838A000014BFF61F93C6000033C800003386A
-S21902CC056329DC388437F838A000024BFF61E13C6000033C80FF
-S21902CC1A000338632A34388437F438A000014BFF61C93C600032
-S21902CC2F033C80000338632A50388435E838A000054BFF61B100
-S21902CC443C6000033C80000438632A783884196438A000054BD7
-S21902CC59FF61993D20000338000000900938144800034D480069
-S21902CC6E287D3D6000033D200003392937D83BEB37C87C1F488C
-S21902CC83004182003C7D3D4B783BC00001813F00047FE3FB7884
-S21902CC987D2803A64E8000217C631B794182000C93DF000C483B
-S21902CCAD000008907F000C3BFF00107C1FE8004082FFD43D2089
-S21902CCC20003800938BC2C000000408200143C60000338632C6E
-S21902CCD7804BFFD9DD480000903D200003800937F42C000000A9
-S21902CCEC418200283C6000043863195048001E8D2C030000413A
-S21902CD018200143C60000338632CA04BFFD9A9480000103D20F9
-S21902CD16000338000001900938143D200003800938142C00007F
-S21902CD2B00418200403C600003386335E8480001B97C641B781D
-S21902CD403C60000338632CCC4BFFD96D3C600004386319644815
-S21902CD5500019D7C641B783C60000338632CD44BFFD9514BFFB9
-S21902CD6AFC758001001C7C0803A683A1000C83C1001083E1008A
-S21902CD7F14382100184E8000209421FFF093E1000C38000004C5
-S21902CD947C0903A67C9F237838800000398000188963000038F2
-S21902CDA9E000012C0B000038A0000038C0000A3863000141821D
-S21902CDBE011069600030212000007C0901147CE9003941820013
-S21902CDD330892300003809FFBF280000194181000C38090020F9
-S21902CDE85409063E2C090078408200108D63000138C0001038DE
-S21902CDFD630001392BFFD0380BFFBF7D2A4B787C08037855299B
-S21902CE12063E5400063E21290009392000007D29491420000059
-S21902CE2705380000007C0001147D27037938E000003920000090
-S21902CE3C40820010380BFF9F2800000541810008392000012CAA
-S21902CE51090000418200685540063E280000094181000C7D49F3
-S21902CE66537848000030380BFF9F280000054181000C392BFF2E
-S21902CE7BA94800001C5500063E200000057C0001107C0003B80C
-S21902CE90392BFFC97C0948387C09300040800020896300007C58
-S21902CEA50531D62C0B00007CA04A14386300014082FF0C480003
-S21902CEBA00142C0B002E4182000C386000004800001C7CA0609C
-S21902CECF307C840378398CFFF84200FECC909F0000386000010C
-S21902CEE483E1000C382100104E8000209421FFE87C0802A69310
-S21902CEF9A1000C93C1001093E100149001001C890300033FA069
-S21902CF0E000488A3000088C3000188E300023C80000338842C78
-S21902CF23F0387D9F044BFFD705387D9F048001001C7C0803A662
-S21902CF3883A1000C83C1001083E10014382100184E8000208101
-S21902CF4D2300007C0918004182002081230004908900008003E1
-S21902CF6200049064000090040004908300044E80002090890005
-S21902CF77049089000091240000912400044E8000207C6B1B78AB
-S21902CF8C806B00007C0358004182001880030000900B0000814D
-S21902CFA1230000916900044E800020386000004E80002094212A
-S21902CFB6FFE87C0802A693A1000C93C1001093E100149001008F
-S21902CFCB1C3D0000033CE00003392838A039673898912838A095
-S21902CFE0916738983D400004912900043BCA9F24916B00043F27
-S21902CFF5A000033BE000107FC4F378387D38984BFFFF4937FF57
-S21902D00AFFFF3BDE06104082FFEC8001001C7C0803A683A10042
-S21902D01F0C83C1001083E10014382100184E8000209421FFF812
-S21902D0347C0802A69001000C80040000A124000490030010B176
-S21902D04923001480040000A10400043D200003396938B09009E4
-S21902D05E38B03D400003B10B0004906A38BC48000015800100C2
-S21902D0730C7C0803A6382100084E8000209421FFF87C0802A641
-S21902D0889001000C81230000388300108009000038A000007CA3
-S21902D09D0803A64E8000218001000C7C0803A6382100084E80EE
-S21902D0B200209421FF587C0802A67D800026934100909361008F
-S21902D0C7949381009893A1009C93C100A093E100A4900100ACF4
-S21902D0DC9181008C3D2000003929320083A9004C3D6000032C65
-S21902D0F11D00007C7B1B787C9A23787CBC2B7883EB38BC3BC093
-S21902D1060005418200547FBFEB78815F0000801F000C816A00DA
-S21902D11B243D2000032C000000392935C4916A0028912A0024EB
-S21902D1304082002C800A00003C800003388438B07FE3FB7838FB
-S21902D145A000007C0803A64E800021801F000C60000001901F57
-S21902D15A000C2E1D00004800003C813F00007FE3FB78800900C0
-S21902D16F1C7C0803A64E8000213D2000003929320080090048AA
-S21902D1843C60000360630D407C0803A64E80002137DEFFFF4071
-S21902D1998100E4813F00007FE3FB788009000C7C0803A64E80F0
-S21902D1AE00212C0300004182FFB0813F00003D60000381490079
-S21902D1C31038A0000238EB38A89361000893410010938100145B
-S21902D1D87FE3FB783881000838DC000E7D4803A63800000E3996
-S21902D1ED2000009001000C912B38A84E8000213D2000038009F5
-S21902D20238B83FC000032C000000418200384BFFF6117C7D1B92
-S21902D217783C60000338632CFC4BFFD4957F63DB783880000E73
-S21902D22C4BFFDF617F43D3787F84E3784BFFDF557FA3EB784BA3
-S21902D241FFF64D801E38A82C000000408200307FFDFB787FDFA6
-S21902D256F378813D00007FA3EB788009001C7C0803A64E80006E
-S21902D26B21801F38A82C0000004182FFE47FBFEB7841920018A9
-S21902D280813F0000380000008169002890090028916900248029
-S21902D2950100AC8181008C7C0803A68341009083610094838145
-S21902D2AA009883A1009C83C100A083E100A47D8081203821002D
-S21902D2BFA84E8000209421FFF87C0802A69001000C3D200003E8
-S21902D2D4380938A87C0400004082001038000001900938A848D1
-S21902D2E90000188123000081690028800B00087C0803A64E80CD
-S21902D2FE00218001000C7C0803A6382100084E8000209421FF36
-S21902D313E07C0802A69361000C9381001093A1001493C100181A
-S21902D32893E1001C900100243D200000392932008389004C3D1E
-S21902D33D6000032C1C00007C7D1B787C9B237883CB38BC4182E6
-S21902D35200547F9EE378815E0000801E000C816A00243D2000FE
-S21902D367032C000000392935C4916A0028912A00244082002C30
-S21902D37C800A00003C800003388438B07FC3F37838A000007CA7
-S21902D3910803A64E800021801E000C60000001901E000C813E5C
-S21902D3A600007FC3F3788009001C7C0803A64E8000213C600061
-S21902D3BB03386338A04BFFFBC97C7F1B7941820054393F000CA8
-S21902D3D0A009000C817F000C8149000481090008B01D000C91B6
-S21902D3E57D0000915D0004911D000880BF00087F63DB7838A5AE
-S21902D3FAFFF2389F001A4BFFCAB13C600003386338987FE4FB08
-S21902D40F784BFFFB3D807F000848000008386000002C1C0000D0
-S21902D42441820018813E000038000000816900289009002891B6
-S21902D439690024800100247C0803A68361000C8381001083A150
-S21902D44E001483C1001883E1001C382100204E8000209421FFB7
-S21902D463E87C0802A693A1000C93C1001093E100149001001CC0
-S21902D4787CA02B797C0903A64081003C7C9F23787FC902A63FC8
-S21902D48DA00003807F000080BF0004809D38AC4BFFCA15801DD7
-S21902D4A238AC813F000437DEFFFF7C004A143BFF0008901D38B2
-S21902D4B7AC4082FFD88001001C7C0803A683A1000C83C10010C6
-S21902D4CC83E10014382100184E8000209421FF607C0802A6939A
-S21902D4E161008C9381009093A1009493C1009893E1009C900149
-S21902D4F600A47C7E1B783C6000037C9B2378386338984BFFFAE9
-S21902D50B817C7C1B787F89FE707D20E2787C004850817E000078
-S21902D5207C00FE70393C000C7D3F0038800B001493E1000893E2
-S21902D53561000C7FC3F3783881000838A000017C0803A64E802B
-S21902D54A00213D200003800938B82C000000418200384BFFF268
-S21902D55FC57C7D1B783C60000338632D0C4BFFD1497FE3FB78B3
-S21902D5743880000E4BFFDC15387F000E389BFFF24BFFDC097F63
-S21902D589A3EB784BFFF301813E0000800900282C0000004182E3
-S21902D59E005C3C600003386335E8389F001E38A000044BFFD3D0
-S21902D5B3752C03000041820040815E00007FC3F378812A002856
-S21902D5C87F64DB78800900043D6000037C0803A683AA0014393D
-S21902D5DD6BD4603D20000393E938AC916A00144E800021813E16
-S21902D5F2000093A900142C1C0000418200183C600003937C00FC
-S21902D60708386338A07F84E3784BFFF93D800100A47C0803A65C
-S21902D61C8361008C8381009083A1009483C1009883E1009C3822
-S21902D6312100A04E8000209421FFF87C0802A69001000C3D205C
-S21902D6460003806938BC81630000800B00207C0803A64E80005E
-S21902D65B218001000C7C0803A6382100084E8000209421FFF8DD
-S21902D6707C0802A69001000C7C641B783C60000338632D1C4B94
-S21902D685FFD0318001000C7C0803A6382100084E8000209421CB
-S21902D69AFFF07C0802A693E1000C900100143D2000043BE91D92
-S21902D6AFD0801F001C2C0000004082002C90691DD0909F0004A1
-S21902D6C44800049D7C631B794082001C801F0008392000017C93
-S21902D6D90000D0913F001C901F001038600000800100147C0809
-S21902D6EE03A683E1000C382100104E8000203D20000439291DD0
-S21902D703D08009001C7C6B1B782C0000004082000C3860000782
-S21902D7184E800020800900147C0B0040418000148009001838F5
-S21902D72D6000007C0B00404D800020386000014E8000203D20E8
-S21902D742000439691DD0800B001C2C0000004182001C812B00DA
-S21902D757143860000091240000800B0018900500004E8000202F
-S21902D76C386000074E8000203D20000439691DD0800B001C7C01
-S21902D7816A1B782C0000004182001C812B000838600000912A7D
-S21902D7960000800B000C900400004E800020386000074E8000F1
-S21902D7AB209421FFD87C0802A69321000C9341001093610014DE
-S21902D7C09381001893A1001C93C1002093E100249001002C3DCB
-S21902D7D520000480091DEC7C7F1B782C0000007C9E23787CBADD
-S21902D7EA2B783B8000004082000C38600007480000F83D2000BB
-S21902D7FF0483A91DD03C8000033CA000033884DCF038A5DE18F8
-S21902D8147CA428507FA3EB784BFFC6957CBFF214380000807CC1
-S21902D8290903A639200000612010003D600E007C0004AC7D39BA
-S21902D83E8BA67D788BA67C198BA67D788BA6392900104200FFD8
-S21902D853E03C0004004C00012C7C108BA64C00012C3D20000489
-S21902D86839291DD0800900107CBE2B783C6000037FFF00383F4B
-S21902D87D2000037D3B4B7838632D587FE4FB784BFFCE29480072
-S21902D892001C801B000838792D705400F87E7C0002147FFF0291
-S21902D8A7144BFFCE0D7C1FF040408000207FE3FB787FA803A6DC
-S21902D8BC4E800021480003657C7C1B794182FFCC93FA00003CCE
-S21902D8D10002004C00012C7C108BA64C00012C3C600003386350
-S21902D8E62D744BFFCDCD7F83E3788001002C7C0803A6832100C6
-S21902D8FB0C83410010836100148381001883A1001C83C1002079
-S21902D91083E10024382100284E8000209421FFD07C0802A692C2
-S21902D925E1000C9301001093210014934100189361001C93817D
-S21902D93A002093A1002493C1002893E1002C900100343D6000DB
-S21902D94F04392B1DD08009001C7CBE2B782C0000007CD83378BA
-S21902D9647C7C1B787C9D23783B4000004082000C386000074838
-S21902D97900011C836B1DD03C8000033CA000033884DE1838A56D
-S21902D98EDF5C7CA428507F63DB784BFFC5197CBDF214380000D6
-S21902D9A3807C0903A639200000612010003D600E007C0004ACF9
-S21902D9B87D398BA67D788BA67C198BA67D788BA63929001042A6
-S21902D9CD00FFE03C0004004C00012C7C108BA64C00012C3C60D4
-S21902D9E2000338632D787FA4EB787F86E3784BFFCCC53D2000C8
-S21902D9F7043EE000033B291DD04800002038772D704BFFCCAD27
-S21902DA0C57E0F87E7C0002147FBD02147FDFF0507F9C02142C72
-S21902DA211E000040810050801900087FC5F3787F8500007F8364
-S21902DA36E3787FA4EB784FFEE3827D200026552907FE7D290055
-S21902DA4BD07C0048787CA948387D2503787F6803A67CBF2B7883
-S21902DA604E800021480001C17C7A1B794182FF98939800003C66
-S21902DA750002004C00012C7C108BA64C00012C3C6000033863AA
-S21902DA8A2D744BFFCC297F43D378800100347C0803A682E1004E
-S21902DA9F0C8301001083210014834100188361001C8381002013
-S21902DAB483A1002483C1002883E1002C382100304E8000202873
-S21902DAC9030007418100883D600003396B2E885460103A7D4B2D
-S21902DADE002E3D20000339292E887D4A4A147D4903A64E800420
-S21902DAF3203C60000338632D984E8000203C60000338632DB8EB
-S21902DB084E8000203C60000338632DD04E8000203C6000033817
-S21902DB1D632DE84E8000203C60000338632E044E8000203C6090
-S21902DB32000338632E1C4E8000203C60000338632E2C4E80009F
-S21902DB47203C60000338632E504E8000203C60000338632E7420
-S21902DB5C4E8000209421FFE07C0802A693A1001493C1001893B8
-S21902DB71E1001C900100243D20000483E91DD03C8000033CA091
-S21902DB8600033884DF5C38A5DFF87CA428507FE3FB784BFFC35B
-S21902DB9B193FC000013BA0000838610008380000807C0903A6EB
-S21902DBB039200000612010003D600E007C0004AC7D398BA67D34
-S21902DBC5788BA67C198BA67D788BA6392900104200FFE07FE8B5
-S21902DBDA03A64E8000217D3DF1D63D600004396B1DD03D29FE80
-S21902DBEF003C00FE00912B0018900B001493CB000893AB000CAD
-S21902DC0438600000800100247C0803A683A1001483C100188383
-S21902DC19E1001C382100204E8000209421FFF07C0802A693E147
-S21902DC2E000C900100143C00007E7C7F1B786000007E7FE9009B
-S21902DC4339418200503C60000338632EA87FE4FB784BFFCA611E
-S21902DC583C000010600000107FE9003938600004408200303C89
-S21902DC6D600020606300207FE318387C6300D07C63FE707C60AE
-S21902DC8218F8546307BC540007387C6303784800000838600027
-S21902DC9700800100147C0803A683E1000C382100104E800020E8
-S21902DCAC3D200002392920007C0348407C802378396000004103
-S21902DCC181000C7C0048404181001C3D20000338890BBC7C0371
-S21902DCD62040418100107C00204040810008396000017D635B86
-S21902DCEB784E8000207C6A1B787CF88AA654E70FFE2C0700001F
-S21902DD0041820040380000807C0903A639200000612010003DF7
-S21902DD15600E007C0004AC7D398BA67D788BA67C198BA67D7890
-S21902DD2A8BA6392900104200FFE03C0004007C0004AC7C188B8E
-S21902DD3FA655480010396000AA9968055539200055992802AABC
-S21902DD54380000809808055599680555992802AA392000327D31
-S21902DD692903A62F87000038000030980A0000396A0001420026
-S21902DD7E00003D20004C7D2903A6880A00005400067261294B5E
-S21902DD93407D2903A65400063E886A0000546906727C090000A1
-S21902DDA841820014706000207D204B78408200084200FFE43811
-S21902DDBD0000FF98080000892A00007D6A5B782C0900FF3D20AD
-S21902DDD200014082001C3529FFFF40810014880A0000394A0010
-S21902DDE7012C0000FF4182FFEC7D2BFE707D604A787C0058506D
-S21902DDFC7C00FE707C6300384D9E00203C0002007C0004AC7C19
-S21902DE11188BA64E8000209421FFF093C1000893E1000C7D5869
-S21902DE268AA6554A0FFE2C0A000041820040380000807C09038B
-S21902DE3BA639200000612010003D000E007C0004AC7D398BA6DD
-S21902DE507D188BA67C198BA67D188BA6392900104200FFE03D94
-S21902DE652004007C0004AC7D388BA62C0500002F8A0000546AC3
-S21902DE7A0010408100A03BC000AA3BE00055398000A038C000B5
-S21902DE8FFF9BCA05559BEA02AA998A05558804000039200031F5
-S21902DEA498030000380000327C0903A63904000138E30001399C
-S21902DEB929FFFF4200FFFC880300007D2903A6540006725400EF
-S21902DECE063E89630000556906727C09000041820014716000A5
-S21902DEE3207D204B78408200084200FFE498CA000089230000A6
-S21902DEF8880400007D0443787C0900007CE33B784182000C39A7
-S21902DF0D6000FF4800000C34A5FFFF4181FF787CA8FE707D0026
-S21902DF222A787C0040507C00FE70392000FF992A00007D6B0048
-S21902DF3738419E00103D2002007C0004AC7D388BA67D635B7883
-S21902DF4C83C1000883E1000C382100104E8000207D588AA6554C
-S21902DF614A0FFE2C0A000041820040380000807C0903A63920D5
-S21902DF760000612010003D600E007C0004AC7D398BA67D788BC0
-S21902DF8BA67C198BA67D788BA6392900104200FFE03C00040015
-S21902DFA07C0004AC7C188BA63D60FE00380000AA980B055539C1
-S21902DFB5200055992B02AA38000090980B0555892B00002C0ABC
-S21902DFCA000099230000880B0001392000FF98030001992B0033
-S21902DFDF00418200103D6002007C0004AC7D788BA638600000CA
-S21902DFF44E8000209421FFF87C0802A69001000C3803FFFE284E
-S21902E00900001D418100A03D600003396B2EB85400103A7D4BEC
-S21902E01E002E3D20000339292EB87D4A4A147D4903A64E8004AA
-S21902E033203860000248000078386000414BFFA48154637F3E9B
-S21902E0482C0300024182004028030002418100102C0300014118
-S21902E05D8200384800004C2C030004418200242C030008408246
-S21902E072003C38600008480000383860000E4800003038600080
-S21902E0870C480000283860000448000020386000054800001800
-S21902E09C3860000A480000103860000B480000083860000F8054
-S21902E0B101000C7C0803A6382100084E8000203D200003816980
-S21902E0C6385C806B00985463C23E4E8000209421FFF87C080250
-S21902E0DBA69001000C7C641B78386000404BFFA3ED8001000C34
-S21902E0F07C0803A6382100084E8000209421FFF87C0802A69030
-S21902E10501000C386000414BFFA3B560640600548004203D2057
-S21902E11A00035484045E900935D0386000414BFFA3AD8001001A
-S21902E12F0C7C0803A6382100084E8000209421FFF87C0802A674
-S21902E1449001000C386000414BFFA3753D200003808935D05425
-S21902E1596305E8380000007C642378900935D0386000414BFFE6
-S21902E16EA3698001000C7C0803A6382100084E8000204E8000B2
-S21902E183204E8000209421FFF87C0802A69001000C3860004025
-S21902E1984BFFA3293D20000339298DC87C634A78200300007CFE
-S21902E1AD6019148001000C7C0803A6382100084E80002094210B
-S21902E1C2FFF87C0802A69001000C386000404BFFA2F138830011
-S21902E1D704386000404BFFA2F98001000C7C0803A63821000850
-S21902E1EC4E8000209421FFF87C0802A69001000C3D20000380D4
-S21902E2010935D42C0000004082001038000001900935D44800CE
-S21902E21608118001000C7C0803A6382100084E8000203D20006D
-S21902E22B03800935D82C0000004C82002038000001900935D845
-S21902E2407D1E9AA67508FFFF3D2000017D2903A638008001B056
-S21902E2550809C07C0902A6600086A07C0903A642000000800831
-S21902E26A0ABC3D600001600000C090080ABC81280AB8616B007F
-S21902E27FA2552906AE91280AB8916809F07CE902A690E80AE0D3
-S21902E29438002800B0083E8039683E8038002808B00B000239DB
-S21902E2A9200091B12809C0394000019148003038000018980B90
-S21902E2BE0004980B0005B14B0006B0EB0028B0EB002CB0EB0071
-S21902E2D32EB14B003039282800B0E900023800B000B0082800E9
-S21902E2E838082810900900043968280838082820B14B0002901E
-S21902E2FD0B000439202000B1282808380000FF98080A863920B4
-S21902E312000599280A8A38004820B0080A8239204823B1280A0A
-S21902E327824E80002039233E80A00900207D4302147D4B53781E
-S21902E33CA00A00007008800041820028A00A00007008200041B5
-S21902E351820010A00900027D43021448000008394A00087C0A3C
-S21902E36658004082FFD47D495378A0090000700080004082FFC3
-S21902E37BF87D2A4B787C090378A00A0000700B10004182001418
-S21902E390A00A00007000EFFFB00A0000B12A0002A12A000239CC
-S21902E3A500000038090001B00A0002816A00045529043E7C8BA8
-S21902E3BA49AEA00A000060008000B00A0000A12A000071208030
-S21902E3CF00418200647D4B53787D0A43783D0000076108FFFF8B
-S21902E3E4394A00017C0A400040820038A1230A8239400000719F
-S21902E3F929FFFDB1230A82A00B00005400047EB00B0000A12383
-S21902E40E0A8261290002B1230A82A00B000060008000B00B0034
-S21902E42300A00B0000700980004082FFB87D6A5B787D49537875
-S21902E438A0090000700080004082FFF87D2A4B78B00A00024E02
-S21902E44D80002038E33E80A10700107C03422E7D434214700607
-S21902E46280004182000C386000004E800020812A000439600081
-S21902E477008809000098040000B0CA0002812A0004996900002F
-S21902E48C7C03422E600080007C03432E7D388AA655290FFE2C19
-S21902E4A109000041820028812A0004A00700062C000000408122
-S21902E4B600187C004BAC7C0004AC3400FFF0392900104181FF3D
-S21902E4CBF0386000014E8000209421FFE87C0802A693E100146E
-S21902E4E09001001C7C7F1B787FE3FB78388100084BFFFF612C79
-S21902E4F50300004182FFF0886100088001001C7C0803A683E137
-S21902E50A0014382100184E8000209421FFE87C0802A693A10086
-S21902E51F0C93C1001093E100149001001C7CBF2B787FE0FB788B
-S21902E5342C0000007C7D1B787C9E23783BFFFFFF4182002488B7
-S21902E5499E00007FA3EB784BFFFDDD7FE0FB782C0000003BDE58
-S21902E55E00013BFFFFFF4082FFE48001001C7C0803A683A100D5
-S21902E5730C83C1001083E10014382100184E8000209421FFE8B9
-S21902E5887C0802A693A1000C93C1001093E100149001001C7CF6
-S21902E59DBF2B787FE0FB782C0000007C7D1B787C9E23783BFF87
-S21902E5B2FFFF418200247FA3EB784BFFFF197FE0FB782C000083
-S21902E5C700987E00003BDE00013BFFFFFF4082FFE48001001C8E
-S21902E5DC7C0803A683A1000C83C1001083E10014382100184E3B
-S21902E5F18000209421FFE87C0802A69381000893A1000C93C1F6
-S21902E606001093E100149001001C3D200003800935DC3D60001C
-S21902E61B001FE0000A3B8B32007C7D1B787C9E23784800001445
-S21902E630813C0048386000647D2803A64E8000217FA3EB787F8C
-S21902E645C4F3784BFFFE097C631B79408200102C1F00003BFF6F
-S21902E65AFFFF4082FFD48001001C7C0803A68381000883A10017
-S21902E66F0C83C1001083E10014382100184E8000209421FF8024
-S21902E6847C8023782C00000590A1001090C1001490E1001891F2
-S21902E69901001C91210020914100249081000C38600000418208
-S21902E6AE002C28000005418100102C00000441820144480002A3
-S21902E6C3B42C000006418202782C00000741820278480002A0BE
-S21902E6D83D600003800B30043D20000339292F307D2902147D6D
-S21902E6ED2903A64E8004203D20FF0061290014800900007C004E
-S21902E70206AC60000400900900007C0006AC480000E03D20FF9A
-S21902E7170061290200A00900007C0006AC60000008B009000062
-S21902E72C7C0006AC480000C03D20FF0061290200A00900007C8E
-S21902E7410006AC60000004B00900007C0006AC480000A03D207A
-S21902E756FF0061290240A00900007C0006AC60000004B00900E8
-S21902E76B007C0006AC480000803D20FF0061290220A0090000EB
-S21902E7807C0006AC60000008B00900007C0006AC480000603D1B
-S21902E79520FF0061290220A00900007C0006AC60000004B009A9
-S21902E7AA00007C0006AC480000403D20FF0061290940800900E5
-S21902E7BF007C0006AC60000080900900007C0006AC4800002001
-S21902E7D43D20FF0061290948800900007C0006AC60000010903B
-S21902E7E90900007C0006AC3D20000338000001900935E048004E
-S21902E7FE01783D200003806935E038000000900935E03D6000A5
-S21902E81303800B30EC3D200003392930187D2902147D2903A62A
-S21902E8284E8004203D20FF0061290014800900007C0006AC54DD
-S21902E83D0005A8900900007C0006AC4800012C3D20FF006129F0
-S21902E8520200A00900007C0006AC7000FFF75400043EB009001C
-S21902E867007C0006AC480001083D20FF0061290200A009000085
-S21902E87C7C0006AC7000FFFB5400043EB00900007C0006AC4823
-S21902E8910000E43D20FF0061290240A00900007C0006AC700018
-S21902E8A6FFFB5400043EB00900007C0006AC480000C03D20FF7B
-S21902E8BB0061290220A00900007C0006AC7000FFF75400043EC2
-S21902E8D0B00900007C0006AC4800009C3D20FF0061290220A0B9
-S21902E8E50900007C0006AC7000FFFB5400043EB00900007C00AB
-S21902E8FA06AC480000783D20FF0061290940800900007C000656
-S21902E90FAC5400066E900900007C0006AC480000583D20FF00B5
-S21902E92461290948800900007C0006AC54000734900900007CA1
-S21902E9390006AC4800003838600036480000303961000838016F
-S21902E94E0088392000039861007199210070900100749161003E
-S21902E963783D200003800B0008806935DC900935DC38210080B0
-S21902E9784E8000209421FFE87C0802A693C1001093E100149051
-S21902E98D01001C7C9E2378392000007C7F1B78913E0000881F3F
-S21902E9A20A86700B00014182006038000001981F0A86A13F28A2
-S21902E9B700391F2800712080004082003C81280004394000018E
-S21902E9CC880900003960B00098010008B1480002B17F28003829
-S21902E9E1610008388000014BFFB3A92C0300004182000C38001C
-S21902E9F60001901E000038000010901F094C392000017D234BC5
-S21902EA0B788001001C7C0803A683C1001083E100143821001870
-S21902EA204E8000209421FFF07C0802A693C1000893E1000C90B0
-S21902EA350100143D2000003BE93200813F00343860FFFF7D28CE
-S21902EA4A03A64E8000217C7E1B787C1E9AA67400FFFF3D2000E2
-S21902EA5F03800935E42C0000004082009438000001900935E489
-S21902EA744BFFF7B5813F0034386000007D2803A64E8000218146
-S21902EA895F00147C1E9AA67400FFFF3D200003900A0000392956
-S21902EA9EE514912A00043D600003396BE5843D200003916A009C
-S21902EAB3083929E32C912A000C3D600003396BE4D43D200003AB
-S21902EAC8916A00103929E680912A00143D600003396BE97C3DAA
-S21902EADD200003916A00183929E5F4912A001C801F00347FC3C0
-S21902EAF2F3787C0803A64E800021800100147C0803A683C1007B
-S21902EB070883E1000C382100104E8000209421FFF07C0802A653
-S21902EB1C93E1000C900100143D200003806938C07C9F23782C95
-S21902EB31030000418200084BFFB379881F00002C0000024082ED
-S21902EB46002C3C800003388438B0387F001C38A000064BFFBD6C
-S21902EB5BCD2C03000040820010801F00103D200003900935E80B
-S21902EB70800100147C0803A683E1000C382100104E800020946C
-S21902EB8521FE887C0802A69321015C93410160936101649381EE
-S21902EB9A016893A1016C93C1017093E101749001017C3D20003C
-S21902EBAF03906938C0386100187C791B783880000038A0012C60
-S21902EBC44BFFB3C53D200003808938B0396938B0A06B00043D4C
-S21902EBD9201234394000003CE0000338C000016129555539605C
-S21902EBEE0006390735E898C100199961001A9121001C9947353F
-S21902EC03E899480003380000FF90810034B06100389801015179
-S21902EC1898C1001899480001994800023CA000037D1D4378383E
-S21902EC2DA5EB1498010148980101499801014A9801014B980100
-S21902EC42014C9801014D9801014E9801014F980101503861002E
-S21902EC570838800044480000D53B8000023B4101483F6000035C
-S21902EC6C48001F0D7C7E1B787F23CB783880012C7F45D378387A
-S21902EC81C0004338E000444800024948000AA1881B35E82C00A6
-S21902EC96000040820028881D00012C0000004082001C881D0023
-S21902ECAB022C000000408200108BFD00032C1F000041820014A0
-S21902ECC038600044480000BD386000004800003848001EA97CB4
-S21902ECD57E1850280307CF4081FFB07F80E3782C0000003B9C6F
-S21902ECEAFFFF4181FF80386000444800008D3D20000393E9380A
-S21902ECFFB83860FFFF8001017C7C0803A68321015C834101605A
-S21902ED14836101648381016883A1016C83C1017083E1017438D6
-S21902ED292101784E8000203D200003812938C42C090000418248
-S21902ED3E0024A00900047C0020004082000C3860FFFF4E80001A
-S21902ED5320812900002C0900004082FFE43D200003800938C41B
-S21902ED68906938C4B083000490A3000890030000386000004EAF
-S21902ED7D8000203D200003812938C4396000002C0900004D8237
-S21902ED9200207D2A4B78A00900047C0018004082001C2C0B0085
-S21902EDA7004182001080090000900B000048000008814900003F
-S21902EDBC7D2B4B78812900002C0900004082FFD03D200003916F
-S21902EDD14938C44E8000209421FFE87C0802A69381000893A1DB
-S21902EDE6000C93C1001093E100149001001C7C7E1B7883FE005E
-S21902EDFB0838000000A13F00066000FFFF7C090000817E0004F0
-S21902EE107C9C23784082000C38000000B01F0006A01F00047D18
-S21902EE25635B78B00B0002A3BF0004480008CD7C651B787FA4C4
-S21902EE3AEB787FE3FB78480008512C030000408200603D200035
-S21902EE4F03816938C42C0B000041820050A12B0004A01F0002E3
-S21902EE647C09000040820034A0BF0004800B00087D635B783836
-S21902EE79A5FFF87F86E378A0FF0000389F00087C0803A64E8008
-S21902EE8E00217FC3F378480007D948000018816B00002C0B00EF
-S21902EEA3004082FFB87FC3F378480007C18001001C7C0803A653
-S21902EEB88381000883A1000C83C1001083E10014382100184E77
-S21902EECD8000209421FFD87C0802A6930100089321000C9341A1
-S21902EEE20010936100149381001893A1001C93C1002093E10098
-S21902EEF7249001002C7C9C2378281C05C07C791B787CB82B7803
-S21902EF0C7CDA33787CFE3B78418100A8386005EA480006ED7C13
-S21902EF217F1B794182009883BF0008381C0008837F0004B01FEB
-S21902EF36000CB3DD0000B35D0002A01F000C392000007F85E306
-S21902EF4B78B01D0004B13D00067F24CB78387D00084BFFAF557C
-S21902EF603D200003800935E839600011901B000C8138000099DC
-S21902EF757B0009913B0010A01D00047F63DB78B01B0002A39F1B
-S21902EF8A000C480007717C651B787F84E3787FA3EB78480006FA
-S21902EF9FF5B07D00067F05C3787FE3FB78388000114800044540
-S21902EFB47FE3FB78480006B58001002C7C0803A6830100088380
-S21902EFC921000C83410010836100148381001883A1001C83C193
-S21902EFDE002083E10024382100284E8000209421FFD87C0802EE
-S21902EFF3A69381001893A1001C93C1002093E100249001002C17
-S21902F0087CBF2B787C7D1B787C9C23787CDE33787FE3FB7838BD
-S21902F01D81000848001A252C03000041800024A0DF0004A0FE92
-S21902F03200047FA3EB787F84E37838A100084BFFFE9138600089
-S21902F047004800001C3C6000033C80000338633100388431240E
-S21902F05C4BFFB6593860FFFF8001002C7C0803A6838100188330
-S21902F071A1001C83C1002083E10024382100284E8000209421B6
-S21902F086FFE87C0802A69381000893A1000C93C1001093E10027
-S21902F09B149001001C3F8000037CBF2B783D200003807C38C89C
-S21902F0B07CDD33787CFE3B7893E938CC4BFFADF53D20000381C6
-S21902F0C56938D02C0B00004182001CB3CB0004801D0000392030
-S21902F0DA0000900B0000913C38C8480000143C600003386331EB
-S21902F0EF347FE4FB784BFFB5C18001001C7C0803A68381000865
-S21902F10483A1000C83C1001083E10014382100184E8000209400
-S21902F11921FFD07C0802A6934100189361001C9381002093A15A
-S21902F12E002493C1002893E1002C90010034A3A600047CBA2B12
-S21902F143787C7E1B787C9C23783CA000037CFF3B7838A5F0849A
-S21902F158386100087FA4EB784BFFFBD12C0300004080000C382B
-S21902F16D60FFFF48000084813F00043C001062817F000060008A
-S21902F1824DD37D2900161D6B03E85529D1BE7F6B4A143D400050
-S21902F197033D2000033D60000393CA38C8938938CC934B38D0F6
-S21902F1AC480019CD7FBAEB787C7E1B783BE0FFFF3FA000033FB6
-S21902F1C1800003480019B57C7E18507C03D84040800018480080
-S21902F1D60559801D38C82C0000004082FFE483FC38CC7F43D339
-S21902F1EB784BFFFB957FE3FB78800100347C0803A68341001823
-S21902F2008361001C8381002083A1002483C1002883E1002C3852
-S21902F2152100304E8000209421FFF07C0802A693E1000C9001BD
-S21902F22A00147C691B78880900002C0000FF4082002C88090001
-S21902F23F012C0000FF40820020880900022C0000FF4082001411
-S21902F25488090003386000012C0000FF418200643FE000037D80
-S21902F269234B78389F35E838A000044BFFB6B12C030000408231
-S21902F27E000C3860000148000040881F35E8389F35E82C000063
-S21902F293004082002C880400012C000000408200208804000248
-S21902F2A82C0000004082001488040003386000012C00000041B3
-S21902F2BD82000838600000800100147C0803A683E1000C382188
-S21902F2D200104E8000209421FFD87C0802A693A1001C93C100C6
-S21902F2E72093E100249001002C7C7E1B7883FE00047C9D2378D0
-S21902F2FC387F00104BFFFF1D2C03000041820020A09F00007FF9
-S21902F311E3FB785484D6BA38A00000480003752C030000418298
-S21902F32600107FC3F37848000341480000A8801F000C813D0029
-S21902F33B00A17D0004900100089121000CB1610010A13F00003B
-S21902F350A01F00025523D6BA7C030050B01E000C881F00092C53
-S21902F36500000641820038418100102C0000014182001448006D
-S21902F37A00582C000011418200384800004C7C1F1A14901E00DC
-S21902F38F087FC3F37838810008480005054800003C7C1F1A144D
-S21902F3A4901E00087FC3F3783881000848000AE5480000247C0A
-S21902F3B91F1A14901E00087FC3F378388100084BFFFA1148002A
-S21902F3CE000C7FC3F378480002998001002C7C0803A683A10089
-S21902F3E31C83C1002083E10024382100284E8000209421FFE003
-S21902F3F87C0802A69361000C9381001093A1001493C100189362
-S21902F40DE1001C900100247C7C1B7883BC000480FC0008A13C02
-S21902F422000C7CFD38507D293A14B13C000CA01D000054E935A5
-S21902F4372E5400053E600040007000F0FF7C004B78B01D0000E9
-S21902F44C39200000993D00013D000003A12838D4A01C000CB1E6
-S21902F4613D0004B01D000239690001B16838D439400000380006
-S21902F4760040989D0009981D0008B15D000AB15D00063D2000B6
-S21902F48B03800935E87CBB2B78901D000C813B00007CE43B785A
-S21902F4A0913D00107FA3EB7838A00000480001E5B07D000A7F31
-S21902F4B583E378389B000438A0080048000371800100247C08C1
-S21902F4CA03A68361000C8381001083A1001483C1001883E10081
-S21902F4DF1C382100204E8000203D000003800835F82C0000006D
-S21902F4F44C82002038000001900835F8380000047C0903A63C6A
-S21902F5098000033D2000043D600004814438D838A90074390BF3
-S21902F51E002438C005EA38E000007D272A147120000239690097
-S21902F53302914800007C00002654001FFE7C0000D07D6B007822
-S21902F5487D2900387D295B78912800107D0A4378B0C8000E3986
-S21902F55D0A001438E705EC4200FFC4914438D84E8000209421D7
-S21902F572FFE87C0802A69381000893A1000C93C1001093E10036
-S21902F587149001001C3D2000043BE900243BC000003F80000341
-S21902F59C7FFDFB7880DF0010A0FF000EA11F000C813F00007F3D
-S21902F5B1C4F3787FA5EB78387C31604BFFB0F93BDE00012C1EEC
-S21902F5C600033BFF00143BBD00144081FFD03D2000033C600040
-S21902F5DB03808938D83863318C4BFFB0D18001001C7C0803A60B
-S21902F5F08381000883A1000C83C1001083E10014382100184E38
-S21902F6058000203CA00003806538D82C0300004D8200203CE03B
-S21902F61A0003814735F03D200003800935F4394A00017CC050C2
-S21902F62F503C800003816435EC8103001080030000392800141E
-S21902F644900538D87C065800912300089103000438000000B0EF
-S21902F65903000C914735F04C81002090C435EC4E8000203D40BC
-S21902F66E0003812A35F03D600003800B38D83929FFFF912A3522
-S21902F683F0906B38D8900300004E8000203484FFFE4180001861
-S21902F698A00300003484FFFE7CA50214386300024080FFF02C4F
-S21902F6AD04FFFF40820010880300005400402E7CA5021454ABEA
-S21902F6C2043E54A9843E380000007CA95A146000FFFF7C050081
-S21902F6D7004081000C3D25FFFF38A900017CA928F85523C63E47
-S21902F6EC5463402E5520063E7C031B784E800020A123000EA0B2
-S21902F70103000CA16300107C004A14A1430012892300097C00C8
-S21902F7165A147C005214A06300027C004A147C601A144E8000D0
-S21902F72B209421FFD87C0802A69381001893A1001C93C10020FA
-S21902F74093E100249001002C3F8000033FA000033FC00003387A
-S21902F7556005EA4BFFFEB17C7F1B79408200183C6000033863AD
-S21902F76A319C4BFFAF494BFFFE0148000000809F00103861001B
-S21902F77F0838A005EA4BFFDB8D5460043E2C000000B07F000C90
-S21902F79441820074A0010014813C36042C00080039290001914E
-S21902F7A93C3604418200182C000806418200347FE3FB784BFFA3
-S21902F7BEFEB14BFFFF94813D35FC801F001039290001913D359F
-S21902F7D3FC901F00047FE3FB783881000E4BFFFAF94BFFFF70D9
-S21902F7E8813E3600801F001039290001913E3600901F00047FC7
-S21902F7FDE3FB7848000F9D4BFFFF507FE3FB784BFFFE6180010E
-S21902F812002C7C0803A68381001883A1001C83C1002083E1005D
-S21902F82724382100284E8000209421FFE87C0802A69001001CBD
-S21902F83C80040000A144000490010008390100083D200003B157
-S21902F851480004396938B0A14B0004B0A10014800938B0A0A3BC
-S21902F866000C808300109001000EB14100127D0343784BFFD867
-S21902F87B3D3D600003812B360839290001912B36088001001CB0
-S21902F8907C0803A6382100184E8000209421FFF07C0802A6936D
-S21902F8A5C1000893E1000C900100147C7F1B78807F00087C9EAA
-S21902F8BA2378A00300002C00080040820050A09F000C38A0008B
-S21902F8CF004BFFFDC17C631B794082003C813F000838A0000004
-S21902F8E498690000817F0008B06B0002807F0008A09F000C4B45
-S21902F8F9FFFD99813F00087FC5F378B06900027FE3FB7838803F
-S21902F90E00014BFFFAE57FE3FB784BFFFD55800100147C080326
-S21902F923A683C1000883E1000C382100104E8000209421FFD883
-S21902F9387C0802A693410010936100149381001893A1001C938C
-S21902F94DC1002093E100249001002C7C9B23787C7E1B78736056
-S21902F96200023B9E002C83BC000483FC00087CBA2B784182001C
-S21902F9774438000018B01C000C813F000C396000065169E006FD
-S21902F98C3C000204913F000C600005B490010008387F0014388C
-S21902F9A181000838A000044BFFA50938000000B01E0016480089
-S21902F9B60020A13E00163960000539290014B13C000C801F0074
-S21902F9CB0C5160E006901F000C801F000C396000005160C10EFE
-S21902F9E0901F000C813E00542C1A0000913F0004801E0050B184
-S21902F9F57F0010901F000840820054A01E0012B01F0000A13E1C
-S21902FA0A00149B7F000DB13F0002A01E00162C000000418200F0
-S21902FA1F0C63600008981F000D380005B4B01F000EB35F00123E
-S21902FA343D200003800935E839600006901D000C813E000899F8
-S21902FA497D0009913D0010A01C000C7FA3EB78B01D0002A3BCC2
-S21902FA5E000C4BFFFC9D7C651B787FA4EB787FE3FB784BFFFC88
-S21902FA7321B07F00107F83E3783880000638BE00084BFFF9714A
-S21902FA88801E00042C00000A408200243C8000013CA0000338D0
-S21902FA9DA5FC887FC6F378387E00186084D4C048000B5D480036
-S21902FAB20034881F000D7009000340820010A01E00162C000002
-S21902FAC7004182001C3CA0000338A5FC607FC6F378387E0018AE
-S21902FADC388003E848000B298001002C7C0803A68341001083BE
-S21902FAF16100148381001883A1001C83C1002083E100243821E3
-S21902FB0600284E8000209421FFE07C0802A69361000C938100F9
-S21902FB1B1093A1001493C1001893E1001C900100247C7C1B783A
-S21902FB3083FC0008815C0004A0DF0000A0FF0002807F000480AE
-S21902FB45BF000839000014B11C000C3BEA0014801F000C39207A
-S21902FB5A0005396000005120E0065160C10E901F000C39200402
-S21902FB6F00B13F000EB17F0010B17F0012B0EA0014B0DF0002BB
-S21902FB84991F000D907F000890BF00043D200003800935E87CB4
-S21902FB999B2378900A000C813B000038000006912A0010980A0D
-S21902FBAE0009A13C000C7D435378B12A0002A3BC000C4BFFFB31
-S21902FBC33D7C651B787FA4EB787FE3FB784BFFFAC1B07F0010D6
-S21902FBD87F83E3787F65DB78388000064BFFF811800100247C4B
-S21902FBED0803A68361000C8381001083A1001483C1001883E14F
-S21902FC02001C382100204E8000203D200003812938DC396000AC
-S21902FC17002C0900004D8200207D2A4B787C0918004082001CC8
-S21902FC2C2C0B00004182001080090000900B00004800000881BD
-S21902FC414900007D2B4B78812900002C0900004082FFD43D2022
-S21902FC560003914938DC4E8000209421FFF87C0802A69001004A
-S21902FC6B0C3880000038A000014BFFFCC18001000C7C0803A61F
-S21902FC80382100084E8000209421FFF87C0802A69001000C386C
-S21902FC95000000900300044BFFFF718001000C7C0803A63821EF
-S21902FCAA00084E8000209421FFF07C0802A693E1000C90010067
-S21902FCBF147C7F1B784800001080030000901F00404BFFF99DDD
-S21902FCD4807F00402C0300004082FFEC800100147C0803A683B4
-S21902FCE9E1000C382100104E8000209421FFE87C0802A693A1BF
-S21902FCFE000C93C1001093E100149001001C7C7D1B7838000081
-S21902FD1300901D0004387D00184800097D7FA3EB784BFFFF8D2D
-S21902FD287FA3EB784BFFFEE18001001C7C0803A683A1000C8394
-S21902FD3DC1001083E10014382100184E8000208124000880E3F2
-S21902FD520050814900048009000CA164000C7D07505154003622
-S21902FD67BA7D6058507D090214418100707C0A38507D605851DF
-S21902FD7C7D08021440810060814300407D275A142C0A0000382B
-S21902FD91000000912300509004000041820030800A00002C0015
-S21902FDA600004182001C7D49537881290000800900002C000072
-S21902FDBB004082FFF47D2A4B78908A00004800001091030044C3
-S21902FDD09083004091630048386000014E800020386000004E1B
-S21902FDE58000209421FFF07C0802A693C1000893E1000C900125
-S21902FDFA0014812400087C7F1B7883C90008801F00547D20F0CA
-S21902FE0F514081006C387F001848000881811F0054A15F0016AF
-S21902FE247D68F0505549043E7F8B48004FFEE3827C00002654C3
-S21902FE390007FE7C0000D07D2900787D6B00387D6B4B794081B1
-S21902FE4E00307D2B50505525043E2C0500007C085A14901F0092
-S21902FE6354B13F001641820014807F0034386300147C835A1403
-S21902FE784BFFA039800100147C0803A683C1000883E1000C3895
-S21902FE8D2100104E8000209421FFE07C0802A69361000C938166
-S21902FEA2001093A1001493C1001893E1001C900100247C7C1B28
-S21902FEB778807C0004A01C000C83FC0008B0030002A3BC000C48
-S21902FECC7C9E23784BFFF82D7C651B787FA4EB787FE3FB784BDC
-S21902FEE1FFF7B12C0300003B600000408203A03D20000383A9A3
-S21902FEF638DC4800000883BD00002C1D00004182037CA13D00E3
-S21902FF0B12A01F00027C0900004082FFE8A13D00142C090000B2
-S21902FF2041820028A01F00007C0900004082FFD07FC3F3783820
-S21902FF359D000838A000044BFFA9E92C0300004082FFB8801D0E
-S21902FF4A0004817E0004A13E00082C000002917D000CB13D0077
-S21902FF5F1041820024881F000D70090004418200187FA3EB78FE
-S21902FF744BFFFD817F83E3784BFFF6F14800031C813D000438BA
-S21902FF8909FFFF28000009418102FC3D600003396B31C05400DB
-S21902FF9E103A7D4B002E3D200003392931C07D4A4A147D490366
-S21902FFB3A64E800420881F000D7009000241820040380000022E
-S21902FFC8901D0004813F0004A17F000039290001913D0050B156
-S21902FFDD7D0014801E000039200000901D0008B13D004C7FA36F
-S21902FFF2EB78B13D001638800012480002247FC4F3787F83E3C1
-S219030007784BFFFB0548000280387D001848000685881F000DFC
-S21903001C700900044182001038000001901D0004480002607073
-S219030031090002408202387009001041820250813D0054807FFC
-S2190300460008392900017C0348004082023C38000004907D0022
-S21903005B54901D00044800022C881F000D83DD00507009001020
-S219030070418200107FA3EB787F84E3784BFFFD6D7FA3EB787F05
-S21903008584E3784BFFFCC5881F000D7C7B1B78700900014182F9
-S21903009A0024807F0004801D00507C03000040820014380300A5
-S2190300AF0139200005901D0050913D0004801D00507C00F000AD
-S2190300C440820010A01D004C2C000000418201BCA3FD00162CB6
-S2190300D91F000040820024387D0018480005B57FA3EB783880F9
-S2190300EE001038A000004BFFF841B3FD004C480001903800007D
-S21903010301B01D004C48000184881F000D70090010418201787F
-S2190301187FA3EB787F84E3784BFFFCC9813D0054801F000839E6
-S21903012D2900017C0048004082015838000000901D00047FA3A1
-S219030142EB784BFFFAC948000144881F000D70090010418200A3
-S219030157607FA3EB787F84E3784BFFFC89813D0054801F0008C0
-S21903016C392900017C00480040820040881F000D7009000141DE
-S21903018182002C813D00503800000A39290001913D0050901D35
-S21903019600047FA3EB783880001038A000004BFFF79148000009
-S2190301AB0C38000008901D0004881F000D70090001418200D079
-S2190301C0387D0018480004D5813D0050380000093929000191F1
-S2190301D53D0050901D00047FA3EB78388000114800003C7FA3DB
-S2190301EAEB787F84E3784BFFFB5D881F000D7C7B1B78700900DE
-S2190301FF014182008C813D00503800000A39290001913D0050C2
-S219030214901D00047FA3EB783880001038A000004BFFF711485D
-S219030229000064881F000D70090010418200587FA3EB787F8474
-S21903023EE3784BFFFBA9813D0054801F0008392900017C00487A
-S2190302530040820038387D00184800043D3800000A901D00044B
-S219030268480000247FA3EB783880000038A000014BFFF6BD48B2
-S21903027D0000107FC4F3787F83E3784BFFF8852C1B0000408279
-S219030292000C7F83E3784BFFF3D5800100247C0803A68361001E
-S2190302A70C8381001083A1001483C1001883E1001C382100208D
-S2190302BC4E8000209421FFF87C0802A69001000C4BFFF46148DB
-S2190302D10004218001000C7C0803A6382100084E80002094212D
-S2190302E6FFE87C0802A69381000893A1000C93C1001093E100B4
-S2190302FB149001001C7C7D1B787C9C23783880000038A006440C
-S2190303104BFF9C793D600003810B38DC381D006C395D005890F2
-S2190303251D0034915D003039200001380005EA93AB38DC913DAB
-S21903033A0004B39D0012B01D003A911D0000915D003C386000C9
-S21903034F008001001C7C0803A68381000883A1000C83C1001037
-S21903036483E10014382100184E8000209421FFF07C0802A69342
-S219030379E1000C900100147C7F1B78480000084BFFFF39801FD6
-S21903038E00042C00000041820010A01F00162C0000004082FF8D
-S2190303A3E8800100147C0803A683E1000C382100104E800020CC
-S2190303B89421FFF07C0802A693E1000C900100147C7F1B784B5A
-S2190303CDFFFFA5817F000469690004200900007D2049146960AA
-S2190303E20002214000007C0A01147D2A037941820020380000C2
-S2190303F707901F00047FE3FB783880001138A000004BFFF52D4D
-S21903040C480000242C0B00054082001C38000006901F00047FDD
-S219030421E3FB783880001138A000004BFFF5097FE3FB784BFF60
-S219030436F87D800100147C0803A683E1000C382100104E8000CB
-S21903044B209421FFE87C0802A69381000893A1000C93C10010EC
-S21903046093E100149001001C7CBE2B797C7F1B787C9D237840EA
-S219030475810010801F00482C0000004082001438600000480010
-S21903048A00B8907F0048480000AC3B80000048000064809F00CC
-S21903049F447FA3EB784BFF9A0D807F0040801F004881230000BC
-S2190304B47FC0F050913F00407F9C02147FBD02144BFFF1A980B5
-S2190304C97F00402C0300004182FFBC81630008A123000C800B63
-S2190304DE000C540036BA7D204850913F0048800B000C54003643
-S2190304F3BA7D6B0214917F00442C1E00004182003C80BF004810
-S2190305087C1E28004080FF90809F00447FA3EB787FC5F3784BE3
-S21903051DFF9995813F0044801F00487D29F2147C1E0050901F64
-S2190305320048913F00447F9CF2147F83E3788001001C7C0803AE
-S219030547A68381000883A1000C83C1001083E100143821001878
-S21903055C4E8000209421FFF07C0802A693C1000893E1000C9058
-S2190305710100147CBE2B797C7F1B78807F00344081006C813FCC
-S21903058600043929FFFC280900014081000C3860FFFF4800001A
-S21903059B58A01F00162C00000040820048213E05B47D294910C9
-S2190305B07D294BB87D2048F87FC94838700005B47D3E03783849
-S2190305C56300147FC5F3784BFF98E57FE3FB78B3DF00163880F7
-S2190305DA001038A000004BFFF3557FC3F37848000008386000F5
-S2190305EF00800100147C0803A683C1000883E1000C3821001008
-S2190306044E8000209421FFE87C0802A69381000893A1000C9334
-S219030619C1001093E100149001001C7C7F1B787CBD2B787CDCFC
-S21903062E3378909F0004480005453D200003812938E0907F000E
-S219030643082C09000093BF000C939F0010418200187C09F80065
-S21903065841820020812900002C0900004082FFF03D2000038032
-S21903066D0938E093E938E0901F00008001001C7C0803A683813E
-S219030682000883A1000C83C1001083E10014382100184E800018
-S219030697203D200003812938E0394000002C0900004D82002067
-S2190306AC7D2B4B787C091800408200202C0A00004182001080BE
-S2190306C1090000900A00004800001C81690000480000147D2A28
-S2190306D64B78812900002C0900004082FFD03D20000391693842
-S2190306EBE04E8000209421FFE87C0802A693A1000C93C10010B8
-S21903070093E100149001001C3D20000383E938E03BC000002C9C
-S2190307151F00003FA000034182006448000459801F0008813F93
-S21903072A00047C6018507C0348404180003C2C1E000041820059
-S21903073F10801F0000901E00004800000C801F0000901D38E088
-S219030754801F000C807F00107C0803A63BC000004E8000218334
-S219030769FD38E04800000C7FFEFB7883FF00002C1F000040828B
-S21903077EFFA48001001C7C0803A683A1000C83C1001083E10009
-S21903079314382100184E8000209421FFE87C0802A693810008F2
-S2190307A893A1000C93C1001093E100149001001C7C7D1B78834C
-S2190307BDFD0004A13F0002A01F000069290800216900007D2BB1
-S2190307D2491468000001216000007C0B01147C0B48394182005C
-S2190307E7D83FC00003387F0018389E35E838A000044BFFA12D65
-S2190307FC2C030000408200BCA01F00062C00000140820064819A
-S2190308113F000E38000002B01F0006913F0018801F0008391F87
-S2190308260008A1280004901F0012389F0012B1240004801E358A
-S21903083BE83D200003901F000E814938B0392938B0A169000491
-S219030850915F0008B16800043800001CB01D000C7FA3EB78388C
-S219030865A008064BFFEFC9480000502C000002408200483FC0F7
-S21903087A0004801E18243B9E18242C00000041820034807C004F
-S21903088F08389F000E38A000044BFFA08D7C631B794082001CBB
-S2190308A4A01F000C817F0008813C0004B009000491690000905C
-S2190308B97E18247FA3EB784BFFEDAD8001001C7C0803A6838131
-S2190308CE000883A1000C83C1001083E10014382100184E8000CA
-S2190308E3209421FFD87C0802A6936100149381001893A1001C9C
-S2190308F893C1002093E100249001002C7C7F1B787C9D237838A0
-S21903090D60002A4BFFECF97C7E1B7940820018480001007FC321
-S219030922F3784BFFED4938600000480000F4817E00043920009D
-S21903093704992B0005394000013900080038000006980B000436
-S21903094CB14B0000B14B0006B10B00023D200003800935E83D8F
-S219030961400003900B000E392A38B0A1090004800A38B0B10B66
-S219030976000C900B0008813F00003D400004912B0018396A18E5
-S21903098B24380000FF93EB00089801000D93AB0004392000012C
-S2190309A0912A182498010008980100099801000A9801000B9821
-S2190309B501000C3BA000073F8000043B60001CB37E000C7FC33D
-S2190309CAF3783881000838A008064BFFEE5D480001A17C7F1B69
-S2190309DF78480000144BFFED49801C18242C0000004182FF30B1
-S2190309F4480001857C7F1850280300F94081FFE47FA0EB782C3F
-S219030A090000003BBDFFFF4181FFB47FC3F3784BFFEC55386095
-S219030A1EFFFF8001002C7C0803A6836100148381001883A100AB
-S219030A331C83C1002083E10024382100284E8000209421FFD8A3
-S219030A487C0802A6930100089321000C9341001093610014938A
-S219030A5D81001893A1001C93C1002093E100249001002C3D206D
-S219030A7200043B2918303B1900967C7B1B787C9C23787F3DCB09
-S219030A87783B4000007FBEEB787F63DB787FC4F37838A0000400
-S219030A9C4BFF9E892C0300007F5FD378418200383BBE000A7CFA
-S219030AB11DC0003B5F000A4081FFD4801B00007F63DB78901C97
-S219030AC60000389C00044BFFFE192C030000408000283860FF2C
-S219030ADBFF4800006C7C1AC82EA13D0008817D0004B13C0008E2
-S219030AF0901C0000917C00044800004C3CC000038126360C8030
-S219030B05FC0000390900011D29000A3D600004A15C0008801C02
-S219030B1A0004396B18307CE9592E7D295A142C080010B1490090
-S219030B2F08900900049106360C4082000C380000009006360C4D
-S219030B44386000008001002C7C0803A6830100088321000C8363
-S219030B59410010836100148381001883A1001C83C1002083E112
-S219030B6E0024382100284E8000209421FFF87C0802A69001006E
-S219030B830C3D2000003929320080090048386003E87C0803A6D7
-S219030B984E8000213D2000038069361038630001906936108067
-S213030BAD01000C7C0803A6382100084E800020A8
-S219030BC03C746F7069633E0048656C702061626F7574206865CE
-S219030BD56C703F0000000068656C70000000005B2D77203C7470
-S219030BEA696D656F75743E5D205B656E7472795D000045786594
-S219030BFF6375746520636F64652061742061206C6F636174695B
-S219030C146F6E0000676F00002D62203C6C6F636174696F6E3E8E
-S219030C29205B2D6C203C6C656E6774683E5D00446973706C61C4
-S219030C3E7920286865782064756D702920612072616E676520C6
-S219030C536F66206D656D6F72790000000064756D700000000040
-S219030C685B4F4E207C204F46465D00004D616E616765206D614C
-S219030C7D6368696E6520636163686573000000636163686500D8
-S219030C9200000A526564426F6F7428746D292064656275672013
-S219030CA7656E7669726F6E6D656E74202D206275696C742025A9
-S219030CBC732C2025730A000031323A33303A3039000000004FC8
-S219030CD16374203230203230303000506C6174666F726D3A202C
-S219030CE6257320282573292025730A0000004D6F746F726F6CA2
-S219030CFB61204D425800000000506F7765725043203836300016
-S219030D1000000000436F707972696768742028432920323030A7
-S219030D25302C20526564204861742C20496E632E0A0A005241A2
-S219030D3A4D3A2025702D25700A003D3D20457865637574696EB5
-S219030D4F6720626F6F742073637269707420696E202564207364
-S219030D6465636F6E6473202D20656E746572205E4320746F2087
-S219030D7961626F72740A00526564426F6F743E200000002A2ADA
-S219030D8E204572726F723A20496C6C6567616C20636F6D6D61DD
-S219030DA36E643A2025730A00006F6E00006F666600496E7661BF
-S219030DB86C6964206361636865206D6F64653A2025730A0063AD
-S219030DCD6163686573203F0A00000025730A20202025732025BD
-S219030DE2730A00000000626173652061646472657373000000D6
-S219030DF7006C656E677468000044756D702077686174205B6C0C
-S219030E0C6F636174696F6E5D3F0A0000776169742074696D65B2
-S219030E216F7574000000007374617274696E67206164647265D0
-S219030E3673730000000041626F757420746F207374617274204D
-S219030E4B657865637574696F6E206174202570202D2061626F6D
-S219030E6072742077697468205E432077697468696E2025642076
-S219030E757365636F6E64730A0000005B2D765D205B2D725D2075
-S219030E8A5B2D62203C6D656D5F616464723E5D203C66696C6535
-S219030E9F5F6E616D653E0000004C6F616420612066696C650037
-S219030EB46C6F616400000000454C4620696D61676573206E6F17
-S219030EC97420737570706F727465640A000000496E76616C6925
-S219030EDE6420532D7265636F7264206174206F666673657420B8
-S219030EF325702C20696E7075743A2025630A00000042616420BE
-S219030F08532D7265636F726420636F756E74206174206F666634
-S219030F1D7365742025700A0000000041646472657373206F66F1
-S219030F3266736574203D2025700A00000000417474656D7074F5
-S219030F4720746F206C6F616420532D7265636F72642064617452
-S219030F5C6120746F20616464726573733A202570205B6E6F7453
-S219030F7120696E2052414D5D0A00002A2A2A205761726E696EF8
-S219030F86672120436865636B73756D206661696C757265202D1E
-S219030F9B20416464723A20256C782C202530326C58203C3E20EA
-S219030FB02530326C580A0000456E74727920706F696E743A2019
-S219030FC525702C20616464726573732072616E67653A2025702C
-S219030FDA2D25700A0000496E76616C696420532D7265636F72AC
-S219030FEF64206174206F6666736574203078256C782C207479DB
-S21903100470653A2025780A0000000000FFFF4AA8FFFF490CFFB7
-S219031019FF490CFFFF490CFFFF4A90FFFF4A90FFFF4A90FFFF8D
-S21903102E4A58FFFF4A58FFFF4A58256308000A000000757361E0
-S21903104367653A206C6F6164203C66696C655F6E616D653E2070
-S2190310585B2D725D205B2D765D205B2D68203C686F73743E5DE4
-S21903106D205B2D6D207B54465450207C205A4D4F44454D7D5D16
-S219031082205B2D62203C626173655F616464726573733E5D0A66
-S21903109700766572626F7365006C6F61642072617720646174E3
-S2190310AC610000006C6F616420616464726573730000000064BC
-S2190310C16F776E6C6F6164206D6F6465202854465450206F72D2
-S2190310D6205A4D4F44454D290000686F7374206E616D65202821
-S2190310EB4950206164647265737329000066696C65206E616D24
-S21903110065000000496E76616C6964204950206164647265735A
-S219031115733A2025730A007A6D6F64656D000074667470000004
-S21903112A000054465450206D6F646520726571756972657320F5
-S21903113F6120776F726B696E67206E6574776F726B0A000000DD
-S219031154496E76616C696420276D6F6465273A2025730A004662
-S219031169696C65206E616D65206D697373696E670A00004361A6
-S21903117E6E2774206C6F616420272573273A2025730A00000089
-S219031193004572726F722072656164696E6720686561646572B2
-S2190311A82076696120544654503A2025730A0000536F72727951
-S2190311BD2C207A6D6F64656D20646F776E6C6F6164206E6F7454
-S2190311D22079657420617661696C61626C650A00000052617799
-S2190311E7206C6F61642072657175697265732061206D656D6F4C
-S2190311FC727920616464726573730A005261772066696C6520D1
-S2190312116C6F616465642025702D25700A0000454C4600556E3C
-S2190312267265636F676E697A656420696D61676520747970657C
-S21903123B3A20256C780A000000000000006574683000000000B8
-S21903125071756963635F65746800000051554943432045746816
-S21903126565726E65743A204E6F206672656520786D6974206211
-S21903127A7566666572730A000000000000007B636D64737D0023
-S21903128F004D616E61676520464C41534820696D6167657300D5
-S2190312A4666973005B2D6C5D000000004D616E61676520636F5F
-S2190312B96E66696775726174696F6E206B65707420696E204641
-S2190312CE4C415348206D656D6F727900000066636F6E66696746
-S2190312E3005B2D665D00000000496E697469616C697A6520462B
-S2190312F84C41534820496D6167652053797374656D205B4649FF
-S21903130D535D00696E69740000000000000000446973706C6102
-S2190313227920636F6E74656E7473206F6620464C4153482049BB
-S2190313376D6167652053797374656D205B4649535D00000000A0
-S21903134C6C69737400000000446973706C617920667265652010
-S2190313615B617661696C61626C655D206C6F636174696F6E732A
-S2190313762077697468696E20464C41534820496D6167652053A3
-S21903138B797374656D205B4649535D00006672656500000000B7
-S2190313A02D66203C666C6173685F616464723E202D6C203C6C7A
-S2190313B5656E6774683E00457261736520464C41534820636F57
-S2190313CA6E74656E74730000000065726173650000006E616D1E
-S2190313DF6500000000446973706C617920616E20696D616765A4
-S2190313F42066726F6D20464C41534820496D6167652053797318
-S21903140974656D205B4649535D000064656C65746500004C6F98
-S21903141E616420696D6167652066726F6D20464C4153482049FE
-S2190314336D6167652053797374656D205B4649535D20696E7438
-S2190314486F2052414D0000006C6F6164000000002D62203C6D20
-S21903145D656D5F626173653E202D6C203C696D6167655F6C6520
-S2190314726E6774683E205B2D73203C646174615F6C656E6774E4
-S219031487683E5D205B2D66203C666C6173685F616464723E5D38
-S21903149C205B2D65203C656E7472795F706F696E743E5D205BF9
-S2190314B12D72203C72616D5F616464723E5D203C6E616D653E13
-S2190314C6000043726561746520616E20696D6167650063726569
-S2190314DB61746500002A2A2A20696E76616C69642027666973AC
-S2190314F02720636F6D6D616E643A2025730A000066697320005B
-S21903150500000066756C6C20696E697469616C697A6174696F7C
-S21903151A6E2C2065726173657320616C6C206F6620666C617363
-S21903152F680000000041626F757420746F20696E697469616C2F
-S219031544697A65205B666F726D61745D20464C41534820696D5D
-S2190315596167652073797374656D002A2A2041626F727465644E
-S21903156E0A002A2A2A20496E697469616C697A6520464C415360
-S2190315834820496D6167652053797374656D0A00002020206988
-S2190315986E697469616C697A6174696F6E206661696C65642012
-S2190315AD25703A202578282573290A000000002020202057616A
-S2190315C2726E696E673A2064657669636520636F6E74656E7409
-S2190315D773206E6F74206572617365642C20736F6D6520626C91
-S2190315EC6F636B73206D6179206E6F7420626520757361626C3C
-S219031601650A00526564426F6F7400526564426F6F745B6261E1
-S219031616636B75705D00526564426F6F7420636F6E6669670062
-S21903162B00464953206469726563746F72790000004572726F33
-S219031640722077726974696E6720696D616765206465736372A3
-S2190316556970746F72732061742025703A202578282573290A43
-S21903166A00004E616D65202020202020202020202020202046DC
-S21903167F4C41534820616464722020204D656D20616464722011
-S2190316942020204C656E67746820202020456E74727920706FE6
-S2190316A9696E740A000000252D313673202030782530386C586A
-S2190316BE20202030782530386C58202030782530366C5820203F
-S2190316D330782530386C580A00202030782530386C58202E2E42
-S2190316E82030782530386C580A0000006D656D6F727920626146
-S2190316FD736520616464726573730072616D2062617365206176
-S21903171264647265737300000000656E74727920706F696E74B9
-S219031727206164647265737300464C415348206D656D6F727978
-S21903173C20626173652061646472657373000000696D616765CC
-S219031751206C656E677468205B696E20464C4153485D00696DC6
-S2190317666167652073697A65205B61637475616C2064617461AF
-S21903177B5D0000000066696C65206E616D65000000696E7661E5
-S2190317906C696420617267756D656E74730000007265717569E7
-S2190317A572656420706172616D65746572206D697373696E67F1
-S2190317BA0000496E76616C696420464C41534820696D6167659A
-S2190317CF2073697A652F6C656E67746820636F6D62696E617404
-S2190317E4696F6E00496E76616C696420464C4153482061646404
-S2190317F9726573733A20257020282573290A0020202076616C71
-S21903180E69642072616E67652069732025702D25700A00000046
-S219031823002A2A205741524E494E473A2052414D206164647229
-S2190318386573733A202570206D617920626520696E76616C6968
-S21903184D640A004E616D6520697320746F6F206C6F6E672C2005
-S2190318626D757374206265206C657373207468616E202564204E
-S21903187763686172730A00000043616E2774206C6F63617465F4
-S21903188C20256C64206279746573206672656520696E20464C78
-S2190318A14153480A000000496D61676520666F756E642C206277
-S2190318B6757420464C415348206164647265737320696E636FCF
-S2190318CB72726563740A000000496D61676520666F756E642C8B
-S2190318E020627574204C454E47544820697320696E636F7272F5
-S2190318F56563740A000000416E20696D616765206E616D656499
-S21903190A202725732720657869737473000043616E27742070BD
-S21903191F726F6772616D207468697320726567696F6E202D203A
-S219031934636F6E7461696E7320636F646520696E2075736521F7
-S2190319490A000043616E277420657261736520726567696F6EF6
-S21903195E2061742025703A202578282573290A00000043616EC6
-S21903197327742070726F6772616D20726567696F6E20617420EB
-S21903198825703A202578282573290A004572726F722065726161
-S21903199D73696E672061742025703A202578282573290A0000E8
-S2190319B200004572726F722070726F6772616D6D696E672061CA
-S2190319C7742025703A202578282573290A000000006C656E674A
-S2190319DC746800006D697373696E6720617267756D656E740095
-S2190319F1000000696D616765206E616D65000044656C657465C2
-S219031A0620696D61676520272573270000004E6F20696D61671F
-S219031A1B65202725732720666F756E640A000000004E6F7420AC
-S219031A3061206C6F616461626C6520696D6167650A0000004671
-S219031A454C4153483A2064726976657220696E69742066616952
-S219031A5A6C6564212C207374617475733A2025780A00464C4155
-S219031A6F53483A202570202D2025702C20256420626C6F636BCE
-S219031A8473206F662025702062797465732065612E0A0000744F
-S219031A996F6F2066657720617267756D656E7473000000756E17
-S219031AAE7265636F676E697A656420636F6D6D616E64000000F2
-S219031AC30052756E2073637269707420617420626F6F74000053
-S219031AD8626F6F745F73637269707400426F6F742073637269E4
-S219031AED707400626F6F745F7363726970745F64617461000057
-S219031B020000426F6F74207363726970742074696D656F757456
-S219031B1700626F6F745F7363726970745F74696D656F757400A3
-S219031B2C25733A200000000025732000747275650000000066CC
-S219031B41616C73650000002564200030782530325800003A0078
-S219031B560000200000003F3F00000A0000002E2E2025730A00AC
-S219031B6B00456E746572207363726970742C207465726D696ECF
-S219031B80617465207769746820656D707479206C696E650A0011
-S219031B950000003E3E200000000000FFFF17A8FFFF17CCFFFFFB
-S219031BAA1848FFFF1854FFFF17E0FFFF17FCFFFF195CFFFF19C4
-S219031BBF70FFFF1AE4FFFF1A34FFFF198CFFFF19D0FFFF16288B
-S219031BD4FFFF1628FFFF1638FFFF1640FFFF1628FFFF16306C2C
-S219031BE969737420636F6E66696775726174696F6E206F6E6C8E
-S219031BFE79002A2A20696E76616C696420656E7472790A00009A
-S219031C130055706461746520526564426F6F74206E6F6E2D7674
-S219031C286F6C6174696C6520636F6E66696775726174696F6E1D
-S219031C3D0000004572726F722077726974696E6720636F6E6696
-S219031C52696720646174612061742025703A2025782825732961
-S219031C670A0000000000000000FFFF13E0FFFF1440FFFF13F80A
-S219031C7CFFFF13FCFFFF1410FFFF14305265717565737420666B
-S219031C916F7220636F6E6669672076616C75652027257327205C
-S219031CA62D2077726F6E6720747970650A0043616E2774206688
-S219031CBB696E6420636F6E6669672076616C75652027257327F8
-S219031CD00A00000000000000FFFF11D0FFFF11D0FFFF1234FFEC
-S219031CE5FF11F0FFFF11D0FFFF11DC464C41534820636F6E66E4
-S219031CFA696775726174696F6E20636865636B73756D20657291
-S219031D0F726F72206F7220696E76616C6964206B65790A0000E9
-S219031D2400000000FFFF42B4FFFF42B4FFFF42B4FFFF42B4FFD3
-S219031D39FF42B4FFFF42B4FFFF42B4FFFF42B4FFFF42B4FFFFCA
-S219031D4E42B4FFFF42B4FFFF42B4FFFF42B4FFFF42B4FFFF4272
-S219031D63B4FFFF42B4FFFF42D4FFFF42F4FFFF4314FFFF4334A9
-S219031D78FFFF4354FFFF43B8FFFF43B8FFFF43B8FFFF43B8FFD6
-S219031D8DFF4374FFFF4394FFFF4394FFFF4394FFFF4394FFFF31
-S219031DA24394FFFF4394FFFF4394FFFF4394FFFF4394FFFF43B8
-S219031DB794FFFF4394FFFF4394FFFF4394FFFF4394FFFF439452
-S219031DCCFFFF4394FFFF4394FFFF4394FFFF4394FFFF4394FFD2
-S219031DE1FF4394FFFF4394FFFF4394FFFF4394FFFF4394FFFFBD
-S219031DF64394FFFF4394FFFF4394FFFF4394FFFF4394FFFF4364
-S219031E0B94FFFF4394FFFF4374FFFF4374FFFF4374FFFF43747D
-S219031E20FFFF4374FFFF4374FFFF4374FFFF4374FFFF4374FF1D
-S219031E35FF4374FFFF4374FFFF4374FFFF4374FFFF4374FFFF08
-S219031E4A4374FFFF4374FFFF42ECFFFF42ECFFFF4310FFFF4325
-S219031E5F34FFFF4334FFFF4374FFFF4374FFFF4374FFFF4374E9
-S219031E74FFFF4358FFFF4374FFFF4374FFFF4374FFFF4374FFE5
-S219031E89FF4374FFFF4374FFFF4374FFFF4374FFFF4374FFFFB4
-S219031E9E4374FFFF4374FFFF4374FFFF4374FFFF4374FFFF435B
-S219031EB374FFFF4374FFFF4374FFFF4374FFFF4374FFFF437415
-S219031EC8FFFF4374FFFF4374FFFF4374FFFF4374FFFF4374FF75
-S219031EDDFF4374FFFF4374FFFF4374FFFF4374FFFF4374FFFF60
-S219031EF24374FFFF4374FFFF42A8FFFF42A8FFFF42A8FFFF426F
-S219031F07A8FFFF42A8FFFF42A8FFFF42A8FFFF42A8FFFF42A88D
-S219031F1CFFFF42A8FFFF42A8FFFF42A8FFFF42A8FFFF42A8FF21
-S219031F31FF42A8FFFF42A8FFFF42C8FFFF42E8FFFF4308FFFF4B
-S219031F464328FFFF4348FFFF43ACFFFF43ACFFFF43ACFFFF4382
-S219031F5BACFFFF4368FFFF4388FFFF4388FFFF4388FFFF4388F0
-S219031F70FFFF4388FFFF4388FFFF4388FFFF4388FFFF4388FF68
-S219031F85FF4388FFFF4388FFFF4388FFFF4388FFFF4388FFFF53
-S219031F9A4388FFFF4388FFFF4388FFFF4388FFFF4388FFFF43FA
-S219031FAF88FFFF4388FFFF4388FFFF4388FFFF4388FFFF4388A0
-S219031FC4FFFF4388FFFF4388FFFF4388FFFF4388FFFF4388FF14
-S219031FD9FF4388FFFF43883031323334353637383961626364C1
-S219031FEE65660000000000000000503031004F4B00004530311A
-S21903200300453033004530320042303100FFFF5740FFFF5F409C
-S219032018FFFF57ACFFFF5E00FFFF5C80FFFF5F40FFFF5F40FF3B
-S21903202DFF5F40FFFF5938FFFF5F54FFFF5F40FFFF5F40FFFF80
-S2190320425F40FFFF5F40FFFF5A34FFFF5F40FFFF5F40FFFF5928
-S21903205738FFFF5790FFFF5F40FFFF5C80FFFF5F54FFFF5F408A
-S21903206CFFFF5F40FFFF5F40FFFF5A30FFFF5F40FFFF5F40FF5C
-S219032081FF5F40FFFF5F40FFFF5F40FFFF5F40FFFF5F40FFFF32
-S2190320965F40FFFF5F40FFFF5ECCFFFF5C80FFFF5F40FFFF5FF5
-S2190320AB40FFFF5F40FFFF579CFFFF5F40FFFF5F40FFFF5F4073
-S2190320C0FFFF5DE0FFFF5F40FFFF594CFFFF5F40FFFF5F40FF4F
-S2190320D5FF5F40FFFF5784FFFF5DF8FFFF5C80000000003031E9
-S2190320EA32333435363738394142434445460000000000000098
-S2190320FF00FFFF7264FFFF7264FFFF7264FFFF7264FFFF7264A0
-S219032114FFFF7264FFFF7264FFFF7264FFFF7264FFFF7264FF8B
-S219032129FF7264FFFF7264FFFF7264FFFF7264FFFF7264FFFF76
-S21903213E7264FFFF71A4FFFF71A4FFFF71D8FFFF720CFFFF7255
-S2190321530CFFFF7264FFFF7264FFFF7264FFFF7264FFFF724063
-S219032168FFFF7264FFFF7264FFFF7264FFFF7264FFFF7264FF37
-S21903217DFF7264FFFF7264FFFF7264FFFF7264FFFF7264FFFF22
-S2190321927264FFFF7264FFFF7264FFFF7264FFFF7264FFFF729A
-S2190321A764FFFF7264FFFF7264FFFF7264FFFF7264FFFF726493
-S2190321BCFFFF7264FFFF7264FFFF7264FFFF7264FFFF7264FFE3
-S2190321D1FF7264FFFF7264FFFF7264FFFF7264FFFF7264FFFFCE
-S2190321E67264FFFF7218FFFF7218FFFF7218FFFF7218FFFF7276
-S2190321FB18FFFF7218FFFF7218FFFF7218FFFF7218FFFF721807
-S219032210FFFF7218FFFF7218FFFF7218FFFF7218FFFF7218FF0A
-S219032225FF7218FFFF7240FFFF7264FFFF7288FFFF72ACFFFF7D
-S21903223A72D0FFFF733CFFFF733CFFFF733CFFFF733CFFFF7221
-S21903224FF4FFFF7314FFFF7314FFFF7314FFFF7314FFFF7314E5
-S219032264FFFF7314FFFF7314FFFF7314FFFF7314FFFF7314FFC5
-S219032279FF7314FFFF7314FFFF7314FFFF7314FFFF7314FFFFB0
-S21903228E7314FFFF7314FFFF7314FFFF7314FFFF7314FFFF7327
-S2190322A314FFFF7314FFFF7314FFFF7314FFFF7314FFFF731471
-S2190322B8FFFF7314FFFF7314FFFF7314FFFF7314FFFF7314FF71
-S2190322CDFF7314FFFF7294FFFF7294FFFF7294FFFF7294FFFF60
-S2190322E27294FFFF7294FFFF7294FFFF7294FFFF7294FFFF7259
-S2190322F794FFFF7294FFFF7294FFFF7294FFFF7294FFFF729422
-S21903230CFFFF7294FFFF72BCFFFF72DCFFFF72FCFFFF731CFF40
-S219032321FF733CFFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF9F
-S219032336735CFFFF737CFFFF737CFFFF737CFFFF737CFFFF7396
-S21903234B7CFFFF737CFFFF737CFFFF737CFFFF737CFFFF737C58
-S219032360FFFF737CFFFF737CFFFF737CFFFF737CFFFF737CFFC0
-S219032375FF737CFFFF737CFFFF737CFFFF737CFFFF737CFFFFAB
-S21903238A737CFFFF737CFFFF737CFFFF737CFFFF737CFFFF7322
-S21903239F7CFFFF737CFFFF737CFFFF737CFFFF737CFFFF737C04
-S2190323B4FFFF737CFFFF72FCFFFF72FCFFFF72FCFFFF72FCFF70
-S2190323C9FF72FCFFFF72FCFFFF72FCFFFF72FCFFFF72FCFFFFDC
-S2190323DE72FCFFFF72FCFFFF72FCFFFF72FCFFFF72FCFFFF7254
-S2190323F3FCFFFF72FCFFFF7324FFFF7344FFFF7364FFFF738451
-S219032408FFFF73A4FFFF73ECFFFF73ECFFFF73ECFFFF73ECFF2F
-S21903241DFF73ECFFFF73C4FFFF73C4FFFF73C4FFFF73C4FFFF72
-S21903243273C4FFFF73C4FFFF73C4FFFF73C4FFFF73C4FFFF7311
-S219032447C4FFFF73C4FFFF73C4FFFF73C4FFFF73C4FFFF73C4AB
-S21903245CFFFF73C4FFFF73C4FFFF73C4FFFF73C4FFFF73C4FF5B
-S219032471FF73C4FFFF73C4FFFF73C4FFFF73C4FFFF73C4FFFF46
-S21903248673C4FFFF73C4FFFF73C4FFFF73C4FFFF73C4FFFF73BD
-S21903249BC4FFFF73C4FFFF7348FFFF738CFFFF7348FFFF738CBF
-S2190324B0FFFF7348FFFF738CFFFF7348FFFF738CFFFF7348FFEB
-S2190324C5FF738CFFFF7348FFFF738CFFFF7348FFFF738CFFFF92
-S2190324DA7348FFFF738CFFFF738CFFFF738CFFFF738CFFFF73C5
-S2190324EF8CFFFF738CFFFF738CFFFF738CFFFF738CFFFF738C53
-S219032504FFFF738CFFFF738CFFFF738CFFFF738CFFFF738CFFCA
-S219032519FF738CFFFF738CFFFF738CFFFF738CFFFF738CFFFFB5
-S21903252E738CFFFF738CFFFF738CFFFF738CFFFF738CFFFF732C
-S2190325438CFFFF738CFFFF738CFFFF738CFFFF738CFFFF738CFE
-S219032558FFFF738CFFFF738CFFFF738CFFFF738CFFFF738CFF76
-S21903256DFF738CFFFF738CFFFF738CFFFF738CFFFF738CFFFF61
-S219032582738CFFFF738CFFFF73A4FFFF73A4FFFF73A4FFFF7390
-S219032597A4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A41A
-S2190325ACFFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFAA
-S2190325C1FF73A4FFFF73A4FFFF72E4FFFF72E4FFFF7318FFFFA3
-S2190325D6734CFFFF734CFFFF73A4FFFF73A4FFFF73A4FFFF73BC
-S2190325EBA4FFFF7380FFFF73A4FFFF73A4FFFF73A4FFFF73A4EA
-S219032600FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FF55
-S219032615FF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF40
-S21903262A73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73B7
-S21903263FA4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A471
-S219032654FFFF73A4FFFF73A4FFFF73A4FFFF73A4FFFF73A4FF01
-S219032669FF73A4FFFF73A43031323334353637383900003031BB
-S21903267E323334353637383961626364656600000000303132AB
-S2190326933334353637383941424344454600000000000000001B
-S2190326A8FFFF7BC8FFFF7D78FFFF7D78FFFF7D78FFFF7D78FF09
-S2190326BDFF7D78FFFF7D78FFFF7D78FFFF7D78FFFF7D78FFFF42
-S2190326D27D78FFFF7D0CFFFF7BC8FFFF7D78FFFF7D78FFFF7DCD
-S2190326E778FFFF7D78FFFF7D78FFFF7D78FFFF7D78FFFF7D789F
-S2190326FCFFFF7D78FFFF7D78FFFF7D78FFFF7BA8FFFF7D78FFD5
-S219032711FF7D78FFFF7CA0FFFF7D78FFFF7D78FFFF7D78FFFFC6
-S2190327267D78FFFF7BC8000000005E430A003078253038583AEE
-S21903273B20000000002530325800000000202000002000000022
-S219032750207C0000256300007C0A0000202D2061726520796F15
-S2190327657520737572652028792F6E293F2000556E62616C61CA
-S21903277A6E63656420737472696E67210A00416D626967756F02
-S21903278F757320636F6D6D616E6420272573272C2063686F6951
-S2190327A4636573206172653A20257300202573000A000000557C
-S2190327B9736167653A0A002020257325732025730A00002A2A99
-S2190327CE204572726F723A20257320616C7265616479207370CD
-S2190327E3656369666965640A002A2A204572726F723A20696E57
-S2190327F876616C6964206E756D626572202725732720666F729E
-S21903280D2025730A0000002A2A204572726F723A20696E766166
-S2190328226C696420666C616720272563270A000000002A2A2032
-S2190328374572726F723A206E6F2064656661756C742F6E6F6EC4
-S21903284C2D666C616720617267756D656E747320737570706F5B
-S219032861727465640A00004E45544153434949000000004F43BF
-S219032876544554000000556E6B6E6F776E206572726F7200001E
-S21903288B0066696C65206E6F7420666F756E6400006163636557
-S2190328A073732076696F6C6174696F6E000000006469736B2075
-S2190328B566756C6C206F7220616C6C6F636174696F6E2065780F
-S2190328CA63656564656400000000696C6C6567616C20544654AF
-S2190328DF50206F7065726174696F6E0000756E6B6E6F776E206B
-S2190328F47472616E736665722049440066696C6520616C726551
-S21903290961647920657869737473006E6F2073756368207573FB
-S21903291E6572000000006F7065726174696F6E2074696D6564C1
-S219032933206F757400736F6D6520736F7274206F66206E657417
-S219032948776F726B206572726F720000696E76616C69642070EE
-S21903295D6172616D6574657200000070726F746F636F6C207604
-S219032972696F6C6174696F6E000066696C65206973206C6172EE
-S219032987676572207468616E206275666665720000FFFF955CA1
-S21903299CFFFF9568FFFF9574FFFF9580FFFF958CFFFF9598FFC0
-S2190329B1FF95A4FFFF95B0FFFF95BCFFFF95C8FFFF95D4FFFF7F
-S2190329C695E047444220636F6E6E656374696F6E20706F72747D
-S2190329DB006764625F706F7274000000004E6574776F726B2084
-S2190329F0646562756720617420626F6F742074696D6500006EBD
-S219032A0565745F646562756700000055736520424F4F54502084
-S219032A1A666F72206E6574776F726B20636F6E66696775726150
-S219032A2F74696F6E00626F6F74700000004C6F63616C20495008
-S219032A44206164647265737300000000626F6F74705F6D795FA7
-S219032A5969700044656661756C74207365727665722049502032
-S219032A6E61646472657373000000626F6F74705F7365727665BD
-S219032A83725F69700025732E25640A00006E65745F696F5F77DF
-S219032A9872697465000000006E65745F696F5F726561640000F4
-S219032AAD000000FFFF9A0CFFFF9A0CFFFF9A0CFFFF9A0CFFFF7E
-S219032AC29A0CFFFF9A0CFFFF9A0CFFFF9A0CFFFF9A0CFFFF9A29
-S219032AD70CFFFF9A0CFFFF9A0CFFFF9A0CFFFF9A0CFFFF9A0CA2
-S219032AECFFFF9A0CFFFF9A38FFFF9A58FFFF9A78FFFF9A98FF2A
-S219032B01FF9AB8FFFF9CDCFFFF9CDCFFFF9CDCFFFF9CDCFFFF90
-S219032B169AD8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9A58
-S219032B2BF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8C5
-S219032B40FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFA9
-S219032B55FF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF94
-S219032B6A9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AE4
-S219032B7FF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF8FFFF9AF871
-S219032B94FFFF9AF8FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFF5
-S219032BA9FF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF48
-S219032BBE9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A98
-S219032BD390FFFF9A90FFFF9ABCFFFF9AE0FFFF9B04FFFF9B2803
-S219032BE8FFFF9B4CFFFF9BF4FFFF9BF4FFFF9BF4FFFF9BF4FFB8
-S219032BFDFF9B70FFFF9B90FFFF9B90FFFF9B90FFFF9B90FFFF0F
-S219032C129B90FFFF9B90FFFF9B90FFFF9B90FFFF9B90FFFF9B3D
-S219032C2790FFFF9B90FFFF9B90FFFF9B90FFFF9B90FFFF9B9033
-S219032C3CFFFF9B90FFFF9B90FFFF9B90FFFF9B90FFFF9B90FFAF
-S219032C51FF9B90FFFF9B90FFFF9B90FFFF9B90FFFF9B90FFFF9A
-S219032C669B90FFFF9B90FFFF9B90FFFF9B90FFFF9B90FFFF9BE9
-S219032C7B90FFFF9B904E6F206E6574776F726B20696E7465725A
-S219032C90666163657320666F756E640A0000000043616E277432
-S219032CA52067657420424F4F545020696E666F202D206E65748E
-S219032CBA776F726B2064697361626C6564210A00000049503AE4
-S219032CCF20257300002C2044656661756C742073657276657268
-S219032CE43A2025730A0000000000000025642E25642E25642EB2
-S219032CF925640045746865726E65742073656E643A0A0045742F
-S219032D0E6865726E657420726563763A0A006574685F64727622
-S219032D235F6473722073686F756C64206E6F7420626520636100
-S219032D386C6C65643A20766563746F722025642C206461746161
-S219032D4D2025780A000000000000002E2E2E20457261736520E8
-S219032D6266726F6D2025702D25703A2000002E0000000A000097
-S219032D77002E2E2E2050726F6772616D2066726F6D2025702D07
-S219032D8C25702061742025703A2000004E6F206572726F72206A
-S219032DA12D206F7065726174696F6E20636F6D706C657465007E
-S219032DB60000496E76616C696420464C4153482061646472658B
-S219032DCB73730000004572726F7220747279696E6720746F201B
-S219032DE065726173650000004572726F7220747279696E6720DF
-S219032DF5746F206C6F636B2F756E6C6F636B004572726F722030
-S219032E0A747279696E6720746F2070726F6772616D0047656ED9
-S219032E1F65726963206572726F720000004465766963652F72B8
-S219032E346567696F6E2069732077726974652D70726F7465636E
-S219032E4974656400000000464C415348207375622D7379737457
-S219032E5E656D206E6F7420696E697469616C697A65640000005E
-S219032E7300556E6B6E6F776E206572726F720000000000000008
-S219032E88FFFFAC6CFFFFAC78FFFFAC84FFFFAC90FFFFAC9CFF48
-S219032E9DFFACA8FFFFACB4FFFFACC0457272203D2025780A00B0
-S219032EB2000000000000FFFFB1ECFFFFB1ECFFFFB1E4FFFFB18B
-S219032EC77CFFFFB1E4FFFFB184FFFFB1BCFFFFB1C4FFFFB1D44B
-S219032EDCFFFFB1D4FFFFB1CCFFFFB1DCFFFFB1BCFFFFB1F4FF43
-S219032EF1FFB1D4FFFFB1DCFFFFB1DCFFFFB1E4FFFFB1ECFFFFFE
-S219032F06B1F4FFFFB1F4FFFFB1F4FFFFB1F4FFFFB1F4FFFFB1CE
-S219032F1BF4FFFFB1F4FFFFB1DCFFFFB1DCFFFFB1DCFFFFB1DCD6
-S219032F30FFFFB7C4FFFFB7C4FFFFB7C4FFFFB7C4FFFFB7C4FF28
-S219032F45FFB7C4FFFFB7C4FFFFB7C4FFFFB7C4FFFFB7C4FFFF13
-S219032F5AB7C4FFFFB7C4FFFFB7C4FFFFB7C4FFFFB7C4FFFFB746
-S219032F6FC4FFFFB7E4FFFFB804FFFFB824FFFFB844FFFFB86440
-S219032F84FFFFB8C0FFFFB8C0FFFFB8C0FFFFB8C0FFFFB884FF1F
-S219032F99FFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFF5A
-S219032FAEB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB88C
-S219032FC3A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A48B
-S219032FD8FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FF1B
-S219032FEDFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFF06
-S219033002B8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB8A4FFFFB837
-S219033017A4FFFFB814FFFFB814FFFFB814FFFFB814FFFFB81406
-S21903302CFFFFB814FFFFB814FFFFB814FFFFB814FFFFB814FF96
-S219033041FFB814FFFFB814FFFFB814FFFFB814FFFFB814FFFF81
-S219033056B814FFFFB834FFFFB858FFFFB87CFFFFB8A0FFFFB85B
-S21903306BC4FFFFB95CFFFFB95CFFFFB95CFFFFB95CFFFFB8E89A
-S219033080FFFFB908FFFFB908FFFFB908FFFFB908FFFFB908FF79
-S219033095FFB908FFFFB908FFFFB908FFFFB908FFFFB908FFFF64
-S2190330AAB908FFFFB908FFFFB908FFFFB908FFFFB908FFFFB995
-S2190330BF08FFFFB908FFFFB908FFFFB908FFFFB908FFFFB90831
-S2190330D4FFFFB908FFFFB908FFFFB908FFFFB908FFFFB908FF25
-S2190330E9FFB908FFFFB908FFFFB908FFFFB908FFFFB908FFFF10
-S2190330FEB90825733A2043616E27742066696E642061646472D9
-S219033113657373206F66207365727665720A0000005F5F756407
-S219033128705F73656E64746F000000007564705F726563766670
-S21903313D726F6D202D2064726F70706564207061636B65742014
-S2190331526F662025642062797465730A00004275665B25645D33
-S2190331672F25703A206275663A2025702C206C656E3A20256493
-S21903317C2F25642C206E6578743A2025700A00004672656520D8
-S2190331916C697374203D2025700A005F5F656E65745F706F6C35
-S2190331A66C3A206E6F206D6F726520627566666572730A00007F
-S2190331BB0000000000FFFFCDF8FFFFCE50FFFFD0CCFFFFCEA40E
-S2190331D0FFFFCEA4FFFFCF4CFFFFCF8CFFFFD028FFFFD06CFFD1
-S2070331E5FFD0AC64
-S2190331E800000000000332040003789000031248000000000029
-S2190331FD0000000000000000024E3000024E4800024E2000022B
-S2190332124E0800024C9800024B4C0002524400024A0C00024A8E
-S21903322704000335C40000000008003E2879B800007C2F2D5CB7
-S21903323C7C2D000000025DEC00029E0800029E0800029E080089
-S219033251029E0800029E0800029E0800029E0800029E08000216
-S2190332669E0800029E0800029E0800029E0800029E0800029E65
-S21903327B0800029E0800029E0800029E0800029E0800029E08E6
-S21903329000029E0800029E0800029E0800029E0800029E0800D9
-S2190332A5029E0800029E0800029E0800029E0800029E080002C2
-S2190332BA9E0800029E0800029E0800029E0800029E0800029E11
-S2190332CF0800029E0800029E0800029E0800029E0800029E0892
-S2190332E400029E0800029E0800029E0800029E0800029E080085
-S2190332F9029E0800029E0800029E0800029E0800029E0800026E
-S21903330E9E0800029E0800029E0800029E0800029E0800029EBC
-S2190333230800029E0800029E0800000000000000000000000035
-S21903333800000000000000000000000000000000000000000078
-S21903334D00000000000000000000000000000000000000000063
-S2190333620000000000000000000000000000000000000000004E
-S21903337700000000000000000000000000000000000000000039
-S21903338C00000000000000000000000000000000000000000024
-S2190333A10000000000000000000000000000000000000000000F
-S2190333B6000000000000000000000000000000000000000000FA
-S2190333CB000000000000000000000000000000000000000000E5
-S2190333E0000000000000000000000000000000000000000000D0
-S2190333F5000000000000000000000000000000000000000000BB
-S21903340A000000000000000000000000000000000000000000A5
-S21903341F00000000000000000000000000000000000000000090
-S2190334340000000000000000000000000000000000000000007B
-S21903344900000000000000000000000000000000000000000066
-S21903345E00000000000000000000000000000000000000000051
-S2190334730000000000000000000000000000000000000000003C
-S21903348800000000000000000000000000000000000000000027
-S21903349D00000000000000000000000000000000000000000012
-S2190334B2000000000000000000000000000000000000000000FD
-S2190334C7000000000000000000000000000000000000000000E8
-S2190334DC000000000000000000000000000000000000000000D3
-S2190334F100000000000000000000000000000000000000FE00C0
-S2190335060000FE0000000040000000000000FF000000FF00006C
-S21903351B000010000001000000FA100000FA100000000000046A
-S219033530010000000000000000000000008000000000000000FD
-S21903354500000000000000000000000000000000000000000069
-S21903355A000000027FD800028034000000000000000000000045
-S21903356F00FFFFFFFF00000000000000000000000000041B988C
-S2190335840000000000000000000000000000000000000000FF2B
-S219033599FFFFFEFFFFFFFE0000000000001E1400001E140000BA
-S2190335AE01F4000000000000000000000000000000000000000B
-S2190335C3000002D0300002D4D80002D2C40000000000000000A3
-S2190335D800000000000003E800000000000000000000000000EB
-S2190335ED000000000000000000000000000000000000000000C1
-S219033602000000000000000000000000000000000000000000AB
-S21903361700000314D8000314C80003145800023D94000314145B
-S21903362C000313E4000313DC000239B8000313D4000313BC00E6
-S2190336410313A000023BBC000313980003135400031318000275
-S219033656447800031310000312EC000312E400024648000313D5
-S21903366B4C0003131C0003131800024588000314500003141C2D
-S219033680000313DC0002387000030C8C00030C7400030C6800FC
-S21903369502283000030C6000030C3800030C1C00022A2000038E
-S2190336AA12A40003129000031288000236DC000312DC000312F1
-S2190336BFB0000312A800022F3800030C1800030BFC00030BE4F5
-S2190336D400022B1800030BDC00030BC800030BC0000229AC002F
-S2190336E9030EB400030EA800030E800002529C00031AD80003CD
-S2190336FE1AC40000000000000001000000010000000000031AB2
-S219033713F000031AE400031AD8000000010000000400000000AE
-S21903372800031B1800031B0400031AD800000001000000020034
-S21903373D00000000032A3400032A1000000000000000010000D0
-S21903375200010000000000032A5000032A3C00032A3400000012
-S21903376700000000050000000000032A7800032A5C00032A34B1
-S21903377C000000000000000500000000000329DC000329C8002F
-S21903379100000000000001000000020000000000032A040003E4
-S2190337A629E80000000000000001000000010000000000022CC5
-S2190337BBB0000000000002CB98000000000003125000024E60C7
-S2190337D0000331EC000000004E800021000000000000000000CD
-S2070337E5000000D9
+S21902265189476093EB47804E8000213C000040901B4764939A0A
+S219022666477C4800066D3C6000033C8000033CA00003386318EA
+S21902267B443884187438A51880480082DD3C6000033C8000033D
+S2190226903CA000033CC0000338C618C03863188C388418A4388B
+S2190226A5A518B4480082B93C600003386318C4480082AD809A7E
+S2190226BA477C80BB47643C600003386318E8480082993D200061
+S2190226CF033D600003380947403BAB47307C1D00003D2000032E
+S2190226E493894774418200207C1C0378813D00003BBD00087DD2
+S2190226F92803A64E8000217C1DE0004082FFEC3F600003835B5F
+S21902270E47882C1A00004182006C3D20000383A947683C801064
+S219022723621FBD03E860844DD37C9D20967FA0FE707C8436706B
+S2190227387C8020501CA403E83C600003386318F47CA5E8504887
+S21902274D0082153D2000033B800000938947887FA5EB783861B3
+S219022762000838800100480088692C03FFFE4082000C939B47F2
+S2190227778848000008935B47887FFDFB787F3CCB787FDBF378FF
+S21902278C2C1D0000418200143C60000338631938480081C53BBD
+S2190227A1A00000386100083880010038A000FA480088212C0330
+S2190227B600004080001C3D2000038009478C2C0000004182FF81
+S2190227CBC44800A5C94BFFFFBC40820020393C3200800900342D
+S2190227E07F63DB787C0803A64E800021480068954BFFFF9C382A
+S2190227F5610008480082252C0300004081004C3FA000033F40D3
+S21902280A000438610008389D477838BA2C5C48008D1D7C631B13
+S21902281F794182001C8003000C807D4778389A2C5C7C0803A673
+S2190228344E800021480000143C6000033863194438810008489D
+S2190228490081193BA000014BFFFF3C9421FFF07C0802A693E134
+S21902285E000C900100142C0300027C9F237840820144807F00C0
+S219022873043C80000338841964480082312C030000408200441D
+S2190228887D6000A67D605B7839200000512004207C0001243C36
+S21902289D0002004C00012C7C108BA64C00012C3D4002007C0073
+S2190228B204AC7D588BA67C0000A6516004207C00012448000074
+S2190228C7F8807F00043C80000338841968480081D92C0300002D
+S2190228DC408200C07D6000A67D605B7839200000512004207CC1
+S2190228F100012439200000380000807C0903A6612010003D4059
+S2190229060E007C0004AC7D398BA67D588BA67C198BA67D588B68
+S21902291BA6392900104200FFE03C0004004C00012C7C108BA6F1
+S2190229304C00012C3D4004007C0004AC7D588BA63920000038CE
+S2190229450000807C0903A6612010003D400E007C0004AC7D39CA
+S21902295A8BA67D588BA67C198BA67D588BA6392900104200FFAB
+S21902296FE03C000C004C00012C7C108BA64C00012C3D400C00EC
+S2190229847C0004AC7D588BA67C0000A6516004207C0001244825
+S2190229990000243C600003809F00043863196C48007FB9480054
+S2190229AE00103C6000033863198448007FA9800100147C08039A
+S2190229C3A683E1000C382100104E8000209421FFE87C0802A6C3
+S2190229D893A1000C93C1001093E100149001001C3D6000033D2D
+S2190229ED200003392946703BEB46007C1F48004182002C7D3D9B
+S219022A024B783FC00003809F000480BF000080DF0008387E195B
+S219022A179048007F493BFF00107C1FE8004082FFE48001001CF4
+S219022A2C7C0803A683A1000C83C1001083E10014382100184EA6
+S219022A418000209421FFA87C0802A69381004893A1004C93C121
+S219022A56005093E100549001005C7C7D1B787C9C23783D2000C3
+S219022A6B03392919A0386100083880006238A0000138C00000A5
+S219022A8038E100383901003C48008DD53D200003392919B03806
+S219022A956100203880006C38A0000138C0000038E1004039011C
+S219022AAA004448008DB13D4000037FA3EB787F84E378394A1848
+S219022ABFC038A0000138C1000838E000023900000039200000B5
+S219022AD448008DA52C030000418200408001003C2C0000004011
+S219022AE98200143C600003386319B848007E6D48000024800110
+S219022AFE00442C0000004082000C380000209001004080610074
+S219022B133880810040480089218001005C7C0803A683810048E5
+S219022B2883A1004C83C1005083E10054382100584E80002094A2
+S219022B3D21FFB87C0802A69381003893A1003C93C1004093E1B4
+S219022B5200449001004C3D200003800947847C7D1B787C9C23CB
+S219022B67783D20000390010028392919D03861000838800077A6
+S219022B7C38A0000138C0000038E100203901002448008CD13DF3
+S219022B914000037FA3EB787F84E378394A19E038A0000138C1B4
+S219022BA6000838E00001390100283920000048008CC52C03006F
+S219022BBB00418200F8800100242C000000418200343C600003DC
+S219022BD08081002880A10020386319F448007D8580A100203814
+S219022BE56100301CA503E838800008480083E12C03FFFE41823C
+S219022BFA00BC814100287D6000A67D605B783920000051200418
+S219022C0F207C00012439200000380000807C0903A66120100018
+S219022C243D600E007C0004AC7D398BA67D788BA67C198BA67D6D
+S219022C39788BA6392900104200FFE03C0004004C00012C7C10FE
+S219022C4E8BA64C00012C3D6004007C0004AC7D788BA639200074
+S219022C6300380000807C0903A6612010003D600E007C0004AC07
+S219022C787D398BA67D788BA67C198BA67D788BA6392900104293
+S219022C8D00FFE03C000C004C00012C7C108BA64C00012C3D60B8
+S219022CA20C007C0004AC7D788BA67D4803A64E800021800100DA
+S219022CB74C7C0803A68381003883A1003C83C1004083E10044C0
+S219022CCC382100484E8000204E8000209421FFE07C0802A6931C
+S219022CE1A1001493C1001893E1001C90010024380000003D20DC
+S219022CF600033FC000033BA9478890094788901E477448000AE7
+S219022D0B992C030000418200EC3D2000038089479C3D60000349
+S219022D20800B47983D2000043BE988547C8422147C8400507FC7
+S219022D35E3FB7838A00400480074217FE3FB78388003FC48009F
+S219022D4A04F9801F03FC7C030000408200303D2000048169888E
+S219022D5F543C000BAD6000FACE7C0B000040820018813F03F8CC
+S219022D743C00DEAD6000DEAD7C090000418200283C600003384A
+S219022D896328D848007BD53C600004386388543880000038A08C
+S219022D9E040048007495480000583C600003386326B03881005B
+S219022DB30838A0000148000061800100082C00000041820030D2
+S219022DC83C600003386326C87FA4EB7838A00004480000413CA0
+S219022DDD6000033C800003386327043884476838A00002480065
+S219022DF2002938000001901E4774800100247C0803A683A10004
+S219022E071483C1001883E1001C382100204E8000209421FFD8CC
+S219022E1C7C0802A69321000C9341001093610014938100189303
+S219022E31A1001C93C1002093E100249001002C3D2000033D6002
+S219022E4600033B4947307C7B1B787C9D23787CB92B783BCB4610
+S219022E5B70480009452C0300003B800004418200CC7C1ED0006E
+S219022E70418200B43D20000439298854807E00007FFC4A147FDA
+S219022E8564DB7848007BBD2C0300004082007C807E00107C0300
+S219022E9AC8004082005C3803FFFF280000054181008C3D6000E5
+S219022EAF03396B28C05400103A7D4B002E3D200003392928C03A
+S219022EC47D4A4A147D4903A64E800420801F0000901D000048D8
+S219022ED900005CA01F0004813F0000B01D0004913D0000480017
+S219022EEE004893FD0000480000403C600003386328707F64DBD8
+S219022F037848007A5D4800002C807E00103BDE0018480002DD41
+S219022F187C1ED0007F9C1A144082FF543C6000033863289C7F58
+S219022F2D64DB7848007A318001002C7C0803A68321000C834190
+S219022F420010836100148381001883A1001C83C1002083E10047
+S219022F5724382100284E8000209421FBB87C0802A69301042877
+S219022F6C9321042C93410430936104349381043893A1043C93DA
+S219022F81C1044093E104449001044C3D2000033D6000033B094E
+S219022F9646703B2B47307C7C1B787C9B2378480007FD2C0300D4
+S219022FAB003B4000007F1FC3783BC00004418202083C8000042A
+S219022FC0388488543861000838A00400480071913BA104083D71
+S219022FD56000033D200003934B4788392927D07FA3EB783880DA
+S219022FEA006C38A0000038C0000238E104203900000048008847
+S219022FFF613D4000037F83E3787F64DB787FA6EB78394A1E50C9
+S21902301438A0000138E000013900000039200000480088552CCB
+S219023029030000418201947C1FC800418200A480A104207FE3BF
+S21902303EFB787FC4F3784800026538030001280000054181FF7C
+S219023053E03D600003396B28585400103A7D4B002E3D200003C9
+S219023068392928587D4A4A147D4903A64E8004203C600004380C
+S21902307D6388543881000838A00400480070D5480001343B40D6
+S2190230920001807F00103BFF0018480001557FDE1A144BFFFF4E
+S2190230A78C7FE9C2783129FFFF7D294910381FFFE87C0048780E
+S2190230BC7FE948387D3F03784BFFFF6C3C600003386327E84893
+S2190230D10078914BFFFF5C2C1A0000418200E43C000BAD3D60B7
+S2190230E600046000FACE3D20DEAD3B8B88546129DEAD900B88E0
+S2190230FB54913C03F87F83E378388003FC480001393D200003A7
+S2190231103FE00003801F479C81694798907C03FC7C0002143C5D
+S2190231256000037FC05850386327FC4800832D2C03000041829C
+S21902313A0088809F479C3BA104247FC3F3787FA5EB784800A9C6
+S21902314F0D7C7F1B794182002C83A104247FE3FB784800AC15AF
+S2190231647C661B783C600003386320BC7FA4EB787FE5FB78481F
+S2190231790077E9480000447FC3F3787F84E3787FA6EB7838A0E3
+S21902318E04004800AA397C7F1B794182002883A104247FE3FBD3
+S2190231A3784800ABD17C661B783C600003386328287FA4EB784F
+S2190231B87FE5FB78480077A58001044C7C0803A683010428838F
+S2190231CD21042C83410430836104348381043883A1043C83C199
+S2190231E2044083E10444382104484E8000203803FFFF280000ED
+S2190231F7054D8100203D600003396B27B85400103A7D4B002E12
+S21902320C3D200003392927B87D4A4A147D4903A64E8004203847
+S2190232216000044E800020386000084E800020386000004E804B
+S2190232360020386002004E800020388400035484F0BE7C802370
+S21902324B782C00000038C0000038E000003884FFFF40810044F4
+S219023260816300007C8A23787D68383038E7000168E900102CD3
+S2190232750A00007D2AFE707D404A787C0050507D6B43787C0064
+S21902328AFE707CC65A78386300047CE700383884FFFF4181FFF1
+S21902329FC47CC333784E8000209421FF707C0802A69301007023
+S2190232B493210074934100789361007C9381008093A10084933B
+S2190232C9C1008893E1008C900100947C7B1B78807B00087C9FD3
+S2190232DE23782C0300007CB82B78418200383881006038A00047
+S2190232F3014BFFFB25801B000C2C0000004182001480010060C9
+S2190233082C0000004182019848000010800100602C000000407C
+S21902331D8201883D200004392988543C600003809B00047FBFEE
+S2190233324A143863271848007629813B00103809FFFF2800002D
+S21902334705418101483D600003396B27885400103A7D4B002ED3
+S21902335C3D200003392927887D4A4A147D4903A64E80042080DE
+S2190233711D00002C000000418200103D20000338892724480070
+S21902338600303D2000033889272C480000243C600003809D005F
+S21902339B0038632734480075C1480000EC7FA3EB7848009DF113
+S2190233B07C641B783C60000338632720480075A5480000D07F14
+S2190233C5BEEB783BE000003F8000033FA000037C9EF8AE387C98
+S2190233DA273848007585281F00044181000C387D274048007544
+S2190233EF753BFF0001281F00054081FFDC3C6000037FDDF378C4
+S2190234043863274448007559480000843C6000033863274848D3
+S2190234190000883C6000033863274C4800753D881D00007FBE86
+S21902342EEB782C0000007FBFEB78418200583F2000033B40005A
+S219023443003B80000A881E00002C00000A418200187FEBFB7814
+S2190234588C0B00012C00000A4082FFF87D7F5B787FC4F3789BB9
+S21902346D5F000038792750480074ED3BDF00019B9F0000881E18
+S21902348200007FDFF3782C0000004082FFBC2C180000418200B5
+S219023497183C6000033863274C480074C1386000024800022CC7
+S2190234AC801B00102C0000044182005438610008388000503831
+S2190234C1A0000048007B0D2C0300003860FFFF4180020438615A
+S2190234D60008480075452C0300004182FFC4880100082C00005E
+S2190234EB2E4082000C38600000480001E02C00005E4082000CB0
+S21902350038600003480001D0813B00103809FFFF280000054182
+S2190235158101BC3D600003396B27A05400103A7D4B002E3D2060
+S21902352A0003392927A07D4A4A147D4903A64E80042083FD0053
+S21902353F00386100087FA4EB78480087F94800003083FD000089
+S219023554386100087FA4EB7838A0000038C000004800866D48E1
+S21902356900001483FD0000386100087FA4EB7848009ABD2C03BD
+S21902357E00004182013C801D00007FE002787C09FE707D230226
+S219023593787C6348507C63FE707C6018F8546307FE540007BC21
+S2190235A87C63037848000128801D0000A17D000490010058395B
+S2190235BD210058B1690004380100087D3A4B78900100683BC0AC
+S2190235D200003F6000033BE100643B810068806100687FE4FBF0
+S2190235E7787F85E37838DB2740480085E12C030000418200B423
+S2190235FC881F00037C1DF1AE3BDE0001281E00054081FFD44890
+S2190236110000C03C6000037FBEEB783863275848007341480040
+S2190236260044880100083BE100082C000000418200287FC4F342
+S21902363B787FEBFB78880B0000980400008D2B00013884000179
+S2190236502C0900004082FFEC7C9E23783800000A981E00003B94
+S219023665DE0001380000003C600003981E00003863278448004F
+S21902367A72E9386100083880005038A00000480079492C03001F
+S21902368F003860FFFF4180004038610008480073812C0300007C
+S2190236A44082FF8448000028A01A000481210058B01D0004913B
+S2190236B93D000038600004480000143C600003386327484800CF
+S2190236CE729538600001800100947C0803A68301007083210066
+S2190236E374834100788361007C8381008083A1008483C10088C3
+S2190236F883E1008C382100904E8000209421FFF07C0802A6938C
+S21902370DC1000893E1000C900100147C7E1B782C1E00017C9FBF
+S2190237222378418100143C60000338632670480013C9480000DE
+S21902373754480000692C030000418200483C6000033C800003D9
+S21902374C80BF0004386345903884460048007F417C631B7941F0
+S21902376182001C8003000C7FC3F3787FE4FB787C0803A64E80A1
+S2190237760021480000103C600003386326844800137580010089
+S21902378B147C0803A683C1000883E1000C382100104E800020CE
+S2190237A09421FFE07C0802A6934100089361000C9381001093BA
+S2190237B5A1001493C1001893E1001C900100243D2000038009A9
+S2190237CA3F102C0000004082009C3FE00003807F476438000006
+S2190237DF0190093F103C63FFFF3C8000014800A1597C641B79D5
+S2190237F4418200183C600003386326184800716138600000486C
+S2190238090000683F6000033F40000338600000389B479438BADF
+S21902381E47984800A1CD3FA000033F800003387D479C389C47A2
+S219023833A04800A1ED809B479480BA479880DC47A03C60000312
+S21902384880FD479C3863264048007111813D479C801F47643D11
+S21902385D2900017C0900503D600003900B47A438600001800110
+S21902387200247C0803A6834100088361000C8381001083A100F5
+S2190238871483C1001883E1001C382100204E8000209421FFA872
+S21902389C7C0802A69381004893A1004C93C1005093E10054900C
+S2190238B101005C380000007C7D1B787C9C23783D200003900136
+S2190238C600403929257C9001003C386100083880006238A00043
+S2190238DB0138C0000038E100383901003C48007F753D20000375
+S2190238F039292598386100203880006338A0000038C0000238BF
+S219023905E100403900000048007F513D4000037FA3EB787F842C
+S21902391AE378394A254438A0000238C1000838E000023901001B
+S21902392F443920000148007F452C030000408200143C6000032E
+S219023944386322DC480011B1480000E080610044480011ED7CB5
+S2190239597D1B79408200183C6000038081004438632564480017
+S21902396E6FF5480000BC8001003C2C0000004082000C801D0081
+S21902398314900100383D2000038009477C806100387C030040C7
+S2190239984180001C80BD00183D200003816947647C032A147CB3
+S2190239AD005840418000143C600003386325AC48006FA54800E2
+S2190239C2006C809D001048006795801D00FC817D001C2C00002D
+S2190239D7003D200003916947844182004C80610038809D00204A
+S2190239EC48001211809D00FC7C7C1B787C1C2000418200143CE5
+S219023A01600003386325C47F85E37848006F55800100402C006A
+S219023A160000418200143C600003386326047F84E37848006F44
+S219023A2B398001005C7C0803A68381004883A1004C83C10050EC
+S219023A4083E10054382100584E8000209421FFD87C0802A693C8
+S219023A55410010936100149381001893A1001C93C1002093E198
+S219023A6A00249001002C3D400003394A254438A0000238C00021
+S219023A7F0038E00000390100083920000148007DED2C03000096
+S219023A94408200143C600003386322DC48001059480001843D4D
+S219023AA96000033D20000380A9479C800B47983FA000037F6502
+S219023ABE0050807D47A47F64DB784800669583DD47A43BA00015
+S219023AD3003BDE02003BE000024800000C3BFF00013BDE0100F6
+S219023AE83F400003801A479C5400C23E7C1F004040800040880C
+S219023AFD1E00002C0000FF4182FFDC806100087FC4F3784800E7
+S219023B126F352C0300004082FFC83C60000380810008386325D3
+S219023B2750480079352C030000418200F83BA000012C1D00002D
+S219023B3C408200183C600003808100083863256448006E1548B4
+S219023B510000D83B81000C807E0010809E00187F85E3784800CD
+S219023B669EF57C7F1B794182002883A1000C7FE3FB784800A148
+S219023B7BFD7C661B783C600003386324E47FA4EB787FE5FB781D
+S219023B9048006DD17FC3F378388000FF38A00100480066958093
+S219023BA59A479C7F63DB787F85E37848009EA97C7F1B79418212
+S219023BBA002C83A1000C7FE3FB784800A1B17C661B783C600013
+S219023BCF03386324E47FA4EB787FE5FB7848006D85480000480D
+S219023BE43D200003808947A480BA479C7F63DB787F86E3784877
+S219023BF9009FD17C7F1B794182002883A1000C7FE3FB78480079
+S219023C0EA1697C661B783C600003386325047FA4EB787FE5FBD3
+S219023C237848006D3D8001002C7C0803A6834100108361001475
+S219023C388381001883A1001C83C1002083E10024382100284E59
+S219023C4D8000209421FFA07C0802A69381005093A1005493C1FB
+S219023C62005893E1005C90010064380000007C7D1B787C9C232A
+S219023C77783D20000390010044392922809001003C3861000812
+S219023C8C3880006638A0000138C0000038E100383901003C481E
+S219023CA1007BBD3D20000339292528386100203880006C38A00B
+S219023CB6000138C0000038E100403901004448007B993D400049
+S219023CCB037FA3EB787F84E378394A1E5038A0000238C100082B
+S219023CE038E00002390000003920000048007B8D2C030000405D
+S219023CF58200143C600003386322DC48000DF9480001048001C9
+S219023D0A003C2C00000041820010800100442C000000408200AF
+S219023D1F143C6000033863253048000DD1480000DC8061003882
+S219023D3448009C757C7C1B794082002080610038800100407C56
+S219023D496302143863FFFF48009C597C7C1B794182004483A158
+S219023D5E00387F83E3784800A0117C651B783C600003386323EA
+S219023D73387FA4EB7848006BE93D2000033D6000033C6000033B
+S219023D888089479480AB47983863235848006BCD480000708063
+S219023D9D810038800100407C8323787C8402143884FFFF4800DE
+S219023DB2A1A92C030000418200143C6000033863246848006B2C
+S219023DC79D48000040806100388081004038A1004848009C81DB
+S219023DDC7C7C1B794182002883A100487F83E37848009F897C9F
+S219023DF1661B783C600003386324E47FA4EB787F85E37848004E
+S219023E066B5D800100647C0803A68381005083A1005483C100B6
+S219023E1B5883E1005C382100604E8000209421FF187C0802A6D4
+S219023E30934100D0936100D4938100D893A100DC93C100E09347
+S219023E45E100E4900100EC380000007C7D1B787C9C23783D204B
+S219023E5A0003900100C4392922449001009C900100A490010039
+S219023E6FAC900100B4900100BC386100083880006238A0000165
+S219023E8438C0000038E100983901009C480079CD3D200003397C
+S219023E99292258386100203880007238A0000138C0000038E19D
+S219023EAE00A0390100A4480079A93D2000033929226C38610027
+S219023EC3383880006538A0000138C0000038E100A8390100AC16
+S219023ED84800798538E100B03D2000037CFE3B783929228038F6
+S219023EED6100503880006638A0000138C00000390100B44800E3
+S219023F02795D3D2000033929229C386100683880006C38A00050
+S219023F170138C0000038E100B8390100BC480079393D20000374
+S219023F2C392922B4386100803880007338A0000138C0000038F4
+S219023F41E100C0390100C4480079153D4000037FA3EB787F84E7
+S219023F56E378394A22D038A0000238C1000838E000063901004C
+S219023F6BC839200001480079092C030000408200143C600003AA
+S219023F80386322DC48000B75480004B08001009C2C000000413E
+S219023F9582001C800100BC2C00000041820010800100C82C00C1
+S219023FAA0000408200143C600003386322F048000B41480004F9
+S219023FBF7C800100C4814100B82C00000040820008914100C023
+S219023FD43D2000038009479C816100C07D2A02143929FFFF7DC9
+S219023FE92903963F4000037D2901D67C095840912100B84080B4
+S219023FFE00143C6000033863230C480069594800042C80010027
+S219024013B42C00000041820070806100B0480099897C7C1B79F7
+S21902402840820020806100B0800100C07C6302143863FFFF48F2
+S21902403D00996D7C7C1B794182004483A100B07F83E378480055
+S2190240529D257C651B783C600003386323387FA4EB7848006851
+S219024067FD3D2000033D6000033C6000038089479480AB4798B3
+S21902407C38632358480068E1480003B43FE00003808100988047
+S2190240911F477C7C0400404180001C800100C03D200003816909
+S2190240A647647C0402147C005840418000283C60000338632363
+S2190240BB74480068A53D2000033C600003809F477C80A947646B
+S2190240D0386323584800688D806100C8480069412803000F406C
+S2190240E58100183C600003386323A0388000104800686D4800FC
+S2190240FA0340800100B42C0000004082002C808100B87FC3F32A
+S21902410F78480003512C030000408200183C600003808100B81F
+S219024124386323D0480068394800030C3F8000033D200003800F
+S219024139BC479C800947983FA000037F650050807D47A47F6482
+S21902414EDB784800600D801C479C83FD47A45409C23F3BA0002A
+S219024163003B800000418200883FC00003881F00002C0000FF66
+S21902417841820060806100C87FE4FB78480068C12C03000040A9
+S21902418D82004C800100B42C00000041820014813F00108001BF
+S2190241A200B07C0900004082022C813F0018800100B87C090046
+S2190241B7004082022C808100C8387E244C480072992C0300008B
+S2190241CC4182026C3B8000014800001C801A479C3BBD000154BC
+S2190241E100C23E7C1D00403BFF01004180FF842C1C0000814160
+S2190241F600C0806100B04082004C3D2000038009479C3D6000E5
+S21902420B035400C23E7C1C004083EB47A43BA000004800001CD0
+S2190242203D2000038009479C3BBD00015400C23E7C1D00403B55
+S219024235FF010040800010881F00002C0000FF4082FFDC7C832F
+S21902424A52143884FFFF48009D092C030000418200143C6000A8
+S21902425F0338632468480066FD480001D038A100CC806100B01F
+S219024274808100B87CBE2B78480097DD7C7C1B793BA000014133
+S21902428982002C83A100CC7F83E37848009AE17C661B783C604A
+S21902429E00037FA4EB783863249C7F85E378480066B53BA00083
+S2190242B3002C1D000041820044806100B08081009880A100C094
+S2190242C87FC6F378480098FD7C7C1B794182002883A100CC7F67
+S2190242DD83E37848009A957C661B783C600003386324C07FA4BA
+S2190242F2EB787F85E378480066697FE3FB783880000038A00171
+S2190243070048005F2D808100C87FE3FB7848006765800100A4EF
+S21902431C812100B02C000000913F001040820020800100B42CE4
+S2190243310000004182000C812100B04800001081210098480075
+S2190243460008812100A0800100AC913F00142C00000040820012
+S21902435B103D2000038009478448000008800100A8901F001C3E
+S219024370800100B8901F0018812100C0913F00208061009880E6
+S2190243858100C0480008753D200003907F00FC8089479C7F63DD
+S21902439ADB787FC5F378480096B97C7C1B794182004C83A100AF
+S2190243AFCC7F83E378480099C17C661B783C600003386324E470
+S2190243C47FA4EB787F85E37848006595480000683C600003382F
+S2190243D96323F848006585480000583C600003386324244800AE
+S2190243EE6575480000483D200003808947A480BA479C7F63DB1B
+S219024403787FC6F378480097C17C7C1B794182002883A100CC6E
+S2190244187F83E378480099597C661B783C600003386325047F9A
+S21902442DA4EB787F85E3784800652D800100EC7C0803A68341D5
+S21902444200D0836100D4838100D883A100DC83C100E083E10072
+S219024457E4382100E84E8000203D20000380E9479C3D600003EA
+S21902446C814B47943D2000037C073A14810947987D4A02147D99
+S2190244814953787C0940404080007054E0F0BE7C06037854079C
+S219024496103A800A00002C00FFFF4182004C7C09500041820065
+S2190244AB147C0950507C0016707C002040408000587D49537835
+S2190244C07C0940404080002054CB103A7D295A147C0940404039
+S2190244D5800010800900002C00FFFF4082FFEC7D2A4B78480029
+S2190244EA00087D4A3A147C0A40404180FFA47C09500041820097
+S2190244FF207C0950507C0016707C0020404180001091230000F9
+S219024514386000014E800020386000004E8000209421FFE07C6E
+S2190245290802A69361000C9381001093A1001493C1001893E17A
+S21902453E001C900100243D2000038009479C3D600003814B4711
+S219024553943D20000383C947987C0002147FEA02147C1FF04051
+S2190245687FE4FB783F600003408000883F8000033FA000038053
+S21902457D1F00002C00FFFF4182005C7C04F80041820010387CBB
+S219024592222C7FE5FB78480063C97C1FF0407FE4FB7840800013
+S2190245A734801F00002C00FFFF41820028801D479C5400F0BE8E
+S2190245BC5409103A7C844A147C04F04040800010800400002CAE
+S2190245D100FFFF4082FFEC7C9F237848000014801B479C54003F
+S2190245E6F0BE5400103A7FFF02147C1FF0404180FF887C04F84E
+S2190245FB00418200143C6000033863222C7FE5FB78480063556E
+S219024610800100247C0803A68361000C8381001083A1001483FD
+S219024625C1001883E1001C382100204E8000209421FFC87C08B9
+S21902463A02A69381002893A1002C93C1003093E1003490010063
+S21902464F3C7C7D1B787C9C2378380000003D200003900100208B
+S21902466439292194386100083880006338A0000038C00002385D
+S219024679E1002039000000480071DD3D4000037FA3EB787F844D
+S21902468EE378394A1E5038A0000238C1000838E0000139000097
+S2190246A30039200000480071D12C030000418200B481010020D0
+S2190246B83D2000033D60000381494798800B479C2C0800007F1C
+S2190246CDA050503FE00003418200103D200003388921E848002A
+S2190246E2000C3D200003388921F43C600003386321A8480062CD
+S2190246F76D3D2000038009479C3B8000005409C23F4182005C36
+S21902470C3FC00003881D00002C0000FF418200348001002080A7
+S219024721BD00102C0000004182000C80DD00FC4800000880DDAE
+S219024736001480FD0018811D001C387E22007FA4EB78480062FC
+S21902474B19801F479C3B9C00015400C23E7C1C00403BBD0100BA
+S2190247604180FFB08001003C7C0803A68381002883A1002C83E4
+S219024775C1003083E10034382100384E8000209421FFB87C0830
+S21902478A02A69321002C93410030936100349381003893A100DF
+S21902479F3C93C1004093E100449001004C7C7D1B787C9C23785A
+S2190247B43BE000003D2000033929203093E1002038610008384F
+S2190247C980006638A0000038C0000238E1002039000000480062
+S2190247DE70813D4000037FA3EB787F84E378394A1E5038A000A2
+S2190247F30238C1000838E00001390000003920000048007075CF
+S2190248082C030000418202C03C6000033863205C48006C452C05
+S21902481D030000408200143C6000033863208C4800613548009A
+S219024832029C3C6000033863209848006125800100202C00003F
+S219024847004182006C3D200003808947A03D600003800B479CC8
+S21902485C3D2000033884FFFC806947947C8401D63BA100247C12
+S2190248710002147C6302147FA5EB78480091DD7C7C1B797FBE1A
+S219024886EB784182003C83A100247F83E378480094E17C661B55
+S21902489B783C600003386320BC7FA4EB787F85E378480060B531
+S2190248B0480000143C600003386320E4480060A53BC100243FA6
+S2190248C5400003839A479C3C0000027F9C00003F20000383B99D
+S2190248DA47A44FFEEB827C000026540007FE7C0000D07C090051
+S2190248EFF87F9C00385529039C7F9C4B787FA3EB78388000002A
+S21902490438A001004800592D3D2000033F6000033969212C807F
+S2190249191B47948149212C810B0004939D0018915D0000911D01
+S21902492E0004901D0014901D00103BBD01007FA3EB78388000B5
+S2190249430038A00100480058ED3D600003801B4794810B2134FB
+S219024958392B213480E9000C81690004814900087C00E2149350
+S21902496D9D0018911D0000917D0004915D000890FD000C901D7D
+S2190249820014901D00103BBD01007FA3EB783880000038A00139
+S219024997004800589D3D2000038009214439692144812B0008BE
+S2190249AC814B0004A10B000C913D0008901D0000915D0004B141
+S2190249C11D000C880B000E3F800003981D000E817A479C801C11
+S2190249D647987D2B5A147C090050901D0014917D0018901D0067
+S2190249EB103BBD01007FA3EB783880000038A0010048005839B8
+S219024A00801C4798809A479C3D600003814B21547F64005039D5
+S219024A152B2154A109000C8009000481690008915D0000901D15
+S219024A2A0004917D0008B11D000C909D0018937D0010937D0007
+S219024A3F147F63DB787FC5F378480090113BFF00013BFF000104
+S219024A547C7C1B793BFF00013BFF00014182002C83A100247F8E
+S219024A6983E378480093097C661B783C600003386320BC7FA4C1
+S219024A7EEB787F85E37848005EDD48000044809947A47F63DB8A
+S219024A937857E5402E7FC6F3784800912D7C7C1B7941820028B8
+S219024AA883A100247F83E378480092C57C661B783C6000033862
+S219024ABD6321647FA4EB787F85E37848005E998001004C7C0880
+S219024AD203A68321002C83410030836100348381003883A100E3
+S219024AE73C83C1004083E10044382100484E8000209421FFF810
+S219024AFC7C0802A69001000C7C641B783C6000033863200848B8
+S219024B11005E513C6000033C8000033CA0000338634590388470
+S219024B26460038A5202848006CAD8001000C7C0803A638210094
+S219024B3B084E8000209421FFE87C0802A69381000893A1000C44
+S219024B5093C1001093E100149001001C3F8000033D200003800E
+S219024B65BC479C808947983FA000037C7F1B78807D47A47C8554
+S219024B7A2050480055E1801C479C83BD47A45409C23F3B80006E
+S219024B8F003FC0000341820044881D00002C0000FF418200204E
+S219024BA47FE3FB787FA4EB7848005E992C0300004082000C7FDF
+S219024BB9A3EB7848000020801E479C3B9C00015400C23E7C1C2D
+S219024BCE00403BBD01004180FFC4386000008001001C7C080352
+S219024BE3A68381000883A1000C83C1001083E100143821001897
+S219024BF84E800020388400035484F0BE7C8023782C0000003972
+S219024C0D6000003884FFFF408100207C802378812300002C0029
+S219024C220000386300047D6B4A783884FFFF4181FFE87D635B8F
+S219024C37784E8000203860001C4E8000209421FFE87C0802A691
+S219024C4C93A1000C93C1001093E100149001001C7C7D1B788166
+S219024C613D000483C900044800002C73E00012418200107FA3D8
+S219024C76EB787FE4FB784800004973E000084182000C7FA3EB21
+S219024C8B78480001A9B3FE0010A01E00107000001A541F043ED5
+S219024CA02C1F00004082FFC88001001C7C0803A683A1000C83A7
+S219024CB5C1001083E10014382100184E8000209421FFE87C081B
+S219024CCA02A69381000893A1000C93C1001093E100149001004D
+S219024CDF1C7C7D1B7883DD000483FE0018A01F00007000900055
+S219024CF42C001000408200683B9E0028813D0000801E00108150
+S219024D096900247C00F850816B00085400F87AA13F00007C9C8B
+S219024D1E002E7FA3EB7838A000007D6803A67129EFFFB13F00E8
+S219024D33004E800021A01F0000700920004182000C83FE0010BD
+S219024D48480000083BFF0008A01F0000700090002C0010004181
+S219024D5D82FFA493FE00188001001C7C0803A68381000883A172
+S219024D72000C83C1001083E10014382100184E8000209421FF3A
+S219024D87E87C0802A693A1000C93C1001093E100149001001C23
+S219024D9C812300048169000C83EB00047C188AA654000FFE2C9A
+S219024DB100000041820028812B0004A00B00022C0000004081B1
+S219024DC600187C004BAC7C0004AC3400FFF0392900104181FFC4
+S219024DDBF02C050000408100387C9E23787CBD2B78807E000013
+S219024DF02C0300004182001880BE00047FE4FB784800535D800D
+S219024E051E00047FFF021437BDFFFF3BDE00084082FFD88001AE
+S219024E1A001C7C0803A683A1000C83C1001083E10014382100DE
+S219024E2F184E8000209421FFE87C0802A693A1000C93C10010F5
+S219024E4493E100149001001C7C7D1B7883DD000483FE001C4848
+S219024E59000048813D000093FE000C816900247FA3EB78800B7C
+S219024E6E0004A09F00027C0803A64E800021A01F000060008028
+S219024E8300B01F0000A13F0000712020004182000C83FE00144F
+S219024E98480000083BFF0008A01F0000700090002C0010004130
+S219024EAD82FFB093FE001C8001001C7C0803A683A1000C83C1CD
+S219024EC2001083E10014382100184E8000209421FFD87C0802DB
+S219024ED7A6930100089321000C934100109361001493810018A5
+S219024EEC93A1001C93C1002093E100249001002C83C300047CCB
+S219024F0198237883BE00087CBB2B78A01D00007CD93378700908
+S219024F1680007CFA3B78418200447FBFEB783F800003A01F00AD
+S219024F2B00700920004182000C83FE0010480000083BFF0008DF
+S219024F407C1FE8004082000C387C1D5448005A15A01F000070F9
+S219024F550980004082FFD07FFDFB78A01D00007009200041821E
+S219024F6A0010801E00107C0903784800000C381D0008813E00FD
+S219024F7F10901E00087C09E8502C1B00005400F87A393E0028E7
+S219024F94B33D00027F49012E83FD0004408100307F1EC3787F4C
+S219024FA97CDB78809E000080BE00047FE3FB78480051A5801E0C
+S219024FBE0004379CFFFF3BDE00087FFF02144082FFE07C188A8E
+S219024FD3A654000FFE2C00000041820028813D0004A01D000223
+S219024FE82C000000408100187C004BAC7C0004AC3400FFF039AD
+S219024FFD2900104181FFF0A01D00006000DC00B01D0000800167
+S219025012002C7C0803A6830100088321000C8341001083610035
+S219025027148381001883A1001C83C1002083E100243821002890
+S21902503C4E8000208123000481690008A06B000054638BFE681D
+S2190250516300014E800020688401003004FFFF7C6021104E80F7
+S21902506600208123000481690004800B000060000030900B00C2
+S21902507B004E8000208123000481690004800B0000540007327D
+S219025090900B00004E8000209421FFD87C0802A69321000C9370
+S2190250A5410010936100149381001893A1001C93C1002093E132
+S2190250BA00249001002C83230008839900047FDE9AA677DEFF3A
+S2190250CFFF3C80000338843F583860000838A00006480017FDDA
+S2190250E47F788AA6577B0FFE39200000380000807C0903A6610A
+S2190250F92010003CC00E007C0004AC7D398BA67CD88BA67C1934
+S21902510E8BA67CD88BA6392900104200FFE03D2004007C00045B
+S219025123AC7D388BA63FA000033CC000023CE000033D2000047E
+S21902513838C654AC38E7D918391D4790392988383860001C3812
+S21902514D8000007F25CB7848004395807D47903BFE3C0048002E
+S21902516243B13860001C480047BD3860001C48004665801E0AEE
+S219025177003B5E0A005400073293FC0000901E0A00935C0004B2
+S21902518C7FE3FB783880000038A000A44800509D38C000047C51
+S2190251A1C903A62F9B0000391E2C00395E2C203D2000033D6053
+S2190251B6000338E0000038009000915C001C39295880396B70A3
+S2190251CB40911C0010911C0008911C0018915C0014915C000C57
+S2190251E0B0EA0002912A0004B00A0000392905F0394A0008427A
+S2190251F500FFECA40AFFF87D09437860002000B00A000039401A
+S21902520A00047D4903A6399F007238000000B0090002916900DE
+S21902521F04B0090000396B05F0392900084200FFEC7D284B781E
+S219025234A408FFF83B60000160002000B0080000A13E09523B72
+S219025249A0001061290003B13E0952A01E0950390005F0540029
+S21902525E043AB01E0950A13E09543B80FFFF7129FFFDB13E094C
+S21902527354A01E09623D40DEBB7000FFCFB01E0962A13E0960CD
+S219025288614A20E37129FFCFB13E0960A01E0964396000006078
+S21902529D000030B01E0964A13E09523860888861290A00B13E25
+S2190252B20952A01E09503880000F7000F5FFB01E0950813E0A53
+S2190252C7EC38C005EE5529002E913E0AEC801E0AEC38E0004097
+S2190252DC6000003D901E0AEC813E0AEC38002C20552906B09177
+S2190252F13E0AEC937E0030B01F000039202C00B13F00029BBF8C
+S21902530600049BBF0005B11F0006939F0030915F0034917F00BC
+S21902531B38917F003C917F0040B07F0044B17F0044B09F004626
+S219025330B17F0048B0DF004AB0FF004CB11F004EB11F0050389F
+S219025345000006B17F00587C0903A6B17F005A3CA00003B17FF7
+S21902535A005CB17F005E38A53F5E7D8963788C05FFFF980900C2
+S21902536F00392900014200FFF438000000B01F0078B01F0094A8
+S219025384B01F0096B01F0098B01F009AB01F009EB01F00A0B04C
+S2190253991F00A239200001B13E09C0A01E09C070060001418264
+S2190253AE00187FC9F378A00909C0700A00014082FFF87D3E4B6C
+S2190253C3783800FFFFB01A00103920001AB13A0014396000003B
+S2190253D83C001088917A00046000000C901A00003920D555B18C
+S2190253ED3A000E3800280AB01A0008392000903D60FA10992BCC
+S2190254020000A01E096260000001B01E0962A13E096055290401
+S2190254173CB13E0960419E00103D6002007C0004AC7D788BA605
+S21902542C813900003C800003816900247F23CB78800B00003835
+S219025441843F587C0803A64E800021386000018001002C7C084E
+S21902545603A68321000C83410010836100148381001883A100D5
+S21902546B1C83C1002083E10024382100284E8000209421FFF802
+S2190254807C0802A69001000C4BFFF7BD3860001C48004495383C
+S21902549560001C4800433D8001000C7C0803A6382100084E80CE
+S2190254AA00209421FFF87C0802A69001000C3860001C48004114
+S2190254BFB5386000038001000C7C0803A6382100084E80002078
+S2190254D49421FF207C0802A67D800026934100C8936100CC93AA
+S2190254E98100D093A100D493C100D893E100DC900100E491814B
+S2190254FE00C43BA000007C7B1B787C9A237893A1009893A100B8
+S219025513B0386100083880000038A0000C48004D153D20000484
+S21902552881492CF03B8100183800000C396000013D2000037FF0
+S21902553D83E378B0010010B161000E91410008B3A1000C3929F7
+S2190255521BD03880007638A0000038C0000238E1009039000070
+S21902556700480062F53D20000339291BD83861003038800072E1
+S21902557C38A0000038C0000238E1009439000000480062D13DA3
+S21902559120000339291BE8386100483880006238A0000138C0AA
+S2190255A6000038E100983901009C480062AD3D20000339291B2E
+S2190255BBF8386100603880006D38A0000138C0000138E100A033
+S2190255D0390100A4480062893D20000339291C1C38610078386B
+S2190255E580006838A0000138C0000138E100A8390100AC480001
+S2190255FA62653D4000037F86E3787F63DB787F44D378394A1C0C
+S21902560F3438A0000138E00005390100B039200001480062590E
+S2190256242C0300003B8000004182030C800100AC2C0000004114
+S21902563982002C806100A838810008480079F12C0300004082BA
+S21902564E00183C600003808100A838631C4048005305480002FF
+S219025663D8800100A42C000000418200E883A100A03BBD00019A
+S2190256787FA3EB78480053A17C651B783C8000037FA3EB783865
+S21902568D841C58480054C92C0300004082006C812100A07D2464
+S2190256A24B78892900003809FFBF280000194181000C38090028
+S2190256B7205409063E7D204B782C000079418200284181001054
+S2190256CC2C00007841820014480000282C00007A41820018480E
+S2190256E100001C3B8000014800006C3B800002480000643B80FD
+S2190256F600034800005C3C60000348000048806100A03C800085
+S21902570B0338841C744800539D2C030000408200283D20000382
+S2190257208009478C3B8000002C000000408200283C6000033869
+S219025735631C7C48005229480001FC3C600003808100A038637A
+S21902574A1C6048005215480001E82E1C00004092007480610076
+S21902575FB02C030000408200283C60000338631CA4480051F1E1
+S2190257743C6000033C80000338631CB838843F68480051DD482B
+S2190257890001B03BA100B43881000838A000017FA6EB78480059
+S21902579E66217C7B1B7940800014806100B483A100B0480069EF
+S2190257B3B9480000403C600003808100903863BF64480001C1A1
+S2190257C8480000543BA100B4806100B07F84E3787FA5EB7848DB
+S2190257DD008F957C7B1B7940800028806100B483A100B0480068
+S2190257F2931D7C651B783C60000338631CC87FA4EB784800513A
+S2190258075D480001303C600003808100903863E8F44800016D52
+S21902581C3D2000043BE92E083B8000003B4100B84800000C7FF3
+S2190258317CD1AE3B9C0001281C0003418100184800016D7C7BBA
+S2190258461B794080FFE8801F0110900100B42C1B00004180000E
+S21902585BD44800010D800100942C000000418200548001009C92
+S2190258702C000000408200143C60000338631CE0480050E14823
+S2190258850000A8838100984800000C987C00003B9C000148003B
+S21902589A01157C631B794080FFF03C6000038081009838631DCA
+S2190258AF047F85E378480050AD480000743C80000338841D1CC5
+S2190258C4386100B938A00003480052412C0300003B8100B840DD
+S2190258D98200143C600002386359AC480006DD4800004488019F
+S2190258EE00B82C00005340820028893C00013929FFD028090055
+S21902590309418100183C60000280810098386359AC480001C9BC
+S219025918480000143C600003808100B838631D204800503940D6
+S21902592D92000C7FA3EB784800661D800100E4818100C47C08C1
+S21902594203A6834100C8836100CC838100D083A100D483C10054
+S219025957D883E100DC7D808120382100E04E8000203D200004F6
+S21902596C39292E088009010C3969000490090108916901044E5C
+S2190259818000203D600004392B2E083940000038000100906B82
+S2190259962E08914901189009010C90890114914901084E800047
+S2190259AB209421FFF07C0802A693C1000893E1000C900100146F
+S2190259C03D2000043BE92E0883DF01082C1E00004080000C3857
+S2190259D560FFFF480000EC408200C4801F01142C0000004182FB
+S2190259EA0038817F01183D20000339293F607C8958AE396B0040
+S2190259FF013C600003917F011838631BC848004F55801F0118A1
+S219025A14280000064081000893DF01183D2000043BE92E0880B9
+S219025A291F010C2C0000FF41810020801F01142C000000418285
+S219025A3EFF983C60000338631BCC48004F194BFFFF883D2000B6
+S219025A530481292E08381F00047C0303783880010038BF01103D
+S219025A687D2803A6901F01044E8000212C030000907F010C9056
+S219025A7D7F010841810020801F01142C0000004182FF483C601D
+S219025A92000338631BCC48004EC94BFFFF383D400004394A2E61
+S219025AA708812A0108816A01043929FFFF912A0108886B000020
+S219025ABC396B0001916A0104800100147C0803A683C100088398
+S219025AD1E1000C382100104E8000209421FF707C0802A6928112
+S219025AE6006092A1006492C1006892E1006C930100709321005B
+S219025AFB74934100789361007C9381008093A1008493C1008837
+S219025B1093E1008C900100947C7D1B787C9523783B6000003A47
+S219025B258000013B2000003AC000003AE0FFFF480002602C059B
+S219025B3A0053418200183C60000338631A687F64DB7848004E99
+S219025B4F15480002547FA803A63B7B00024E80002138A10058DF
+S219025B6438000000547C063E7CBA2B78900100587FA3EB78385A
+S219025B79800001480002697C7F1B79408000183C60000338633B
+S219025B8E1A947F64DB7848004DCD4800020C381CFFD028000014
+S219025BA3093B7B0001418101AC3D600003396B1BA05400103A1A
+S219025BB87D4B002E3D20000339291BA07D4A4A147D4903A64E7C
+S219025BCD8004207FA3EB78389CFFD17F45D378480002092C144D
+S219025BE200007C7E1B78381BFFD17FD8F3787F60E2144182009D
+S219025BF72C2C1500004182001C7F3EA8503C60000338631AB885
+S219025C0C7F24CB7848004D51480000083B2000003A8000003D0E
+S219025C212000038169477C7FDECA147D39F0507C1748107C00FF
+S219025C3601107C0003B87D2900787C1E58407EE000387C174B46
+S219025C4B78418000143D200003800947647C1E004040810018A9
+S219025C603C60000338631AD07FC4F37848004CF5480001343818
+S219025C751F002E7FFC00507FE9FB782C0900007F7BFA143BFFA9
+S219025C8AFFFF408100307F5CD3787FA3EB78388000017F85E3C4
+S219025C9F78480001457FE0FB782C000000987E00003BDE0001B5
+S219025CB43BFFFFFF4181FFDC7FA3EB783880000138A0000048A1
+S219025CC900011D88A1005B7C6318F85466063E7C0628003B7BD0
+S219025CDE000190A10058418200183C60000338631B0C7F04C39E
+S219025CF37848004C6D480000AC7D39F0507C09B0107C00011060
+S219025D087C0003B87D2900787EC000387C164B78480000547F44
+S219025D1DA3EB78209C003B7F45D378480000BD7C7E1B783D206F
+S219025D3200033C60000393C9478438631B487FC4F3787EE5BBC2
+S219025D47787EC6B37848004C15480000543C60000338631B704F
+S219025D5C7F64DB787F85E37848004BFD4800003C7F7FDB787FB2
+S219025D71BEEB78480000083BFF00017FC803A64E8000212C035C
+S219025D86000A4082FFF07FDDF3787FFBFB787FA803A64E8000F4
+S219025D9B217C651B794181FD98800100947C0803A6828100605A
+S219025DB082A1006482C1006882E1006C83010070832100748347
+S219025DC54100788361007C8381008083A1008483C1008883E14D
+S219025DDA008C382100904E8000209421FFE07C0802A693610096
+S219025DEF0C9381001093A1001493C1001893E1001C900100246F
+S219025E047C9E23787FC0F3782C0000007C7B1B787CBC2B783B57
+S219025E19A000003BDEFFFF408101787F6803A64E8000217F6816
+S219025E2E03A6547F063E4E800021393FFFD0381FFFBF21290003
+S219025E4309392000007D29491420000005380000007C000114F0
+S219025E587D270379546B063E3920000040820010381FFF9F28C3
+S219025E6D00000541810008392000012C09000041820104392B8F
+S219025E82FFD0380BFFBF7D2A4B787C0803785529063E540006AF
+S219025E973E21290009392000007D2949142000000538000000A5
+S219025EAC7C0001147D2703793920000040820010380BFF9F28F5
+S219025EC100000541810008392000012C090000418200B0393F7C
+S219025ED6FFD05520063E2800000957BD402E4181000C7D234BBC
+S219025EEB7848000030381FFF9F280000054181000C387FFFA95C
+S219025F004800001C381FFFBF393FFFC9200000057C0001107C9E
+S219025F150003B87C0348385540063E280000094181000C7D4918
+S219025F2A537848000030380BFF9F280000054181000C392BFFD9
+S219025F3FA94800001C5500063E392BFFC9200000057C000110C2
+S219025F547C0003B87C094838546020362C1C00007C034B787FE2
+S219025F69BD1B784182001C801C00007C001A14901C00004800B3
+S219025F7E000C3860FFFF480000187FC0F3782C0000003BDEFF17
+S219025F93FF4181FE907FA3EB78800100247C0803A68361000C5C
+S219025FA88381001083A1001483C1001883E1001C382100204EEE
+S219025FBD8000209421FFF87C0802A69001000C3C600003386379
+S219025FD21A4C4800498D8001000C7C0803A6382100084E800046
+S219025FE7209421FFF07C0802A693C1000893E1000C900100142D
+S219025FFC3D6000033D200003392945903BEB458C7C1F484041F7
+S2190260118000207D3E4B78813F00003BFFFFFC7D2803A64E8044
+S21902602600217C1FF0404080FFEC800100147C0803A683C100C1
+S21902603B0883E1000C382100104E8000209421FFF87C0802A6A2
+S2190260509001000C3D2000038009430C2C0000004182001080E0
+S21902606509430C90030094480000243D200003906947D4480078
+S21902607A15417C1602A628007A124081000C38007A127C1603A0
+S21902608FA68001000C7C0803A6382100084E8000204E80002058
+S2190260A4386000004E8000209421FFF07C0802A693E1000C907A
+S2190260B9010014480005AD3D2000033889427C800400083BE036
+S2190260CE00002C000000418200307FE3FB787C9F2378809F00ED
+S2190260E30080BF000480DF000888FF000C3BFF00104800047D51
+S2190260F8801F00082C0000004082FFE0800100147C0803A683D3
+S21902610DE1000C382100104E8000204E8000209421FFF87C0814
+S21902612202A69001000C480000ED38007A127C1603A680010067
+S2190261370C7C0803A6382100084E8000203D20002F6129AF08F7
+S21902614C7C6349D63C00431B6000DE837C0300967C63FE707C00
+S2190261610096707D6300507D3602A67D605B782C000000396B11
+S219026176FFFF4C810020394BFFFF7C1602A67C0900004182FF1F
+S21902618BF87C0903787D605B782C0000007D4B53784181FFE0F0
+S2190261A04E8000209421FFF87C0802A69001000C3D20FF0061C3
+S2190261B529093038000001B00900007C0006ACA00900007C0027
+S2190261CA06AC5400AAFF38600000418200302060003A3D600028
+S2190261DF035460103A396B3FB87D6B002E3D200003392940A44C
+S2190261F47C89002E7D6803A64E800021546307FA8001000C7C1E
+S2190262090803A6382100084E8000203D20000339493FB8390067
+S21902621E00407C0A402E3D200002392960A47C004800418200E4
+S21902623318800A00403D2000033929A0B47C004800408200349D
+S2190262483D200002392961A43D600003380000007D2A412E6026
+S21902625D00DEAD396B40A47C0B412E3D20000339294190380051
+S21902627200007C09412E3D600003800B294C3D20000339292991
+S219026287107D2902147D2903A64E8004203D20FF0061290014F4
+S21902629C800900007C0006AC64000001900900007C0006AC48BB
+S2190262B10000E83D20FF0061290200A00900007C0006AC6000CA
+S2190262C60008B00900007C0006AC480000C83D20FF00612902D5
+S2190262DB00A00900007C0006AC60000004B00900007C0006AC85
+S2190262F0480000A83D20FF0061290240A00900007C0006AC6043
+S219026305000004B00900007C0006AC480000883D20FF006129DB
+S21902631A0220A00900007C0006AC60000008B00900007C0006CB
+S21902632FAC480000683D20FF0061290220A00900007C0006AC17
+S21902634460000004B00900007C0006AC480000483D20FF0061A5
+S219026359290940800900007C0006AC60000080900900007C000A
+S21902636E06AC480000283D20FF0061290948816900007C00064E
+S219026383AC3C00800054005D7E7D6B0378916900007C0006ACDC
+S2190263983D600003800B2A5C3D200003392929F87D2902147D1C
+S2190263AD2903A64E8004203D20FF0061290200A00900007C0003
+S2190263C206AC5400063E60000100B00900007C0006AC480000E5
+S2190263D7683D20FF0061290240A00900007C0006AC5400063EAB
+S2190263EC60000100B00900007C0006AC480000443D20FF006104
+S219026401290220A00900007C0006AC5400063E60000100B009AB
+S21902641600007C0006AC480000203D20FF00612909408009001C
+S21902642B007C0006AC6000E000900900007C0006AC3D60000380
+S219026440800B2B443D20000339292AE07D2902147D2903A64E21
+S2190264558004203D20FF0061290014800900007C0006AC600076
+S21902646A0040900900007C0006AC4E8000203D20FF0061290239
+S21902647F00A00900007C0006AC60000008B00900007C0006ACDB
+S2190264944E8000203D20FF0061290200A00900007C0006AC60DF
+S2190264A9000004B00900007C0006AC4E8000203D20FF00612918
+S2190264BE0240A00900007C0006AC60000004B00900007C00060A
+S2190264D3AC4E8000203D20FF0061290220A00900007C0006AC34
+S2190264E860000008B00900007C0006AC4E8000203D20FF00619E
+S2190264FD290220A00900007C0006AC60000004B00900007C00C8
+S21902651206AC4E8000203D20FF0061290940800900007C000693
+S219026527AC60000080900900007C0006AC4E8000203D20FF00BB
+S21902653C61290948816900007C0006AC3C00800054000FFE7DB6
+S2190265516B0378916900007C0006AC4E8000207C1E22A6600070
+S21902656600077C1E23A64E8000209421FFF093E1000C54E0FF6A
+S21902657BFE70FF00012F0000002F8300207CC0FE707D600026E8
+S219026590556B1FFE54A500267D400026554ADFFE7C0600507D45
+S2190265A54A00D07CE0002654E7EFFE7D6B00D060A808FF5400FB
+S2190265BA0FFE7D0858787D4950F860A508FD7CFF00387CAB5819
+S2190265CF38714A000D2F9F00007D654378548400267129001D90
+S2190265E47D4A4B78608402003960000039000020419E005C54AA
+S2190265F96B402E7D55C3A67D70C3A67C93C3A67CB6C3A660A009
+S21902660E01007D5DC3A67D78C3A67C9BC3A67C1EC3A6386300B0
+S219026623013CC6FF807F8340007CC0FE707C0600507D20002658
+S2190266385529EFFE54000FFE7D2700393C8400803CA5008040BC
+S21902664D82FFAC656020007C10C3A67C18C3A683E1000C382164
+S21902666200104E800020380000007C19C3A6380000207C090308
+S219026677A639200000380000007C15C3A67D30C3A67C13C3A6C8
+S21902668C7C16C3A67C1DC3A67D38C3A67C1BC3A67C1EC3A6399B
+S2190266A12901004200FFD83C00200060001F007C10C3A67C1836
+S2190266B6C3A64E8000209421FDE87CDE9AA674C6FFFF3D600068
+S2190266CB03812B42CC2C0900004082020039400030380000011B
+S2190266E07D4903A6900B42CCB12609C43800000039263C807D12
+S2190266F5284B789806086038E62E0838A1000838862E003861DE
+S21902670A00093981021198090000392900014200FFF839202ED9
+S21902671F00B1280002396000103940020938002E0899680005E2
+S21902673499680004B0080000B14800063920A800B1262E083847
+S219026749000101B007000290A700047C8B2378B14B0002380066
+S21902675E00A59801000890AB0004B1262E0038000000980608B7
+S21902677364392000509926086838000001980608603920011124
+S219026788B12609C0A00609C070090001418200187CC93378A001
+S21902679D0909C0700A00014082FFF87D264B7838000211B00673
+S2190267B209C0A12609C071200001418200187CC93378A0090963
+S2190267C7C0700A00014082FFF87D264B78392000007D2903A6B4
+S2190267DC380000819806086C7D4902A6614AC3517D4903A6A09A
+S2190267F10B000070098000418200084200FFF4394001007D4948
+S21902680603A63D20000439298C5439600000380000FF7C09597C
+S21902681BAE396B00014200FFF87D8763787C6B1B787C0B3800BD
+S2190268304182009C3CA00004880B00002C00004D408200808837
+S2190268450B00012C00004F40820074880B00022C0000544082A3
+S21902685A00688C0B000839400000892B00015400402E7C084B5C
+S21902686F787C0A4000396B00024080005438858C547C651B7804
+S219026884880B0000396B00017D693A787D23FE707C0451AE7C1F
+S219026899604A787C0018507C00FE70394A00017CA900787C0A4C
+S2190268AE40007D6000387C0B4B784180FFCC48000010396B00A7
+S2190268C3017C0B38004082FF7038000000980608603821021817
+S2190268D84E8000209421FFE87C0802A693A1000C93C1001093B7
+S2190268EDE100149001001C7C7D1B787C9F23787CBE2B784BFF84
+S219026902FDBD3D20000439698C54394B01007C0B504040800080
+S2190269178457A8063E880B00007C00400040820054886B000144
+S21902692C396B00027F83F0004FFEE3827C000026540007FE7C8E
+S2190269410000D07FC900787C6000387C034B794081004C7C6961
+S21902695603A67D695B787FE4FB7888090000392900019804005D
+S21902696B00388400014200FFF048000028886B00013803000281
+S2190269807D2B00EE5529063E2C0900FF4182000C7C0B50404148
+S21902699580FF88386000008001001C7C0803A683A1000C83C109
+S2190269AA001083E10014382100184E8000209421FFF87C0802B8
+S2190269BFA69001000C480035358001000C7C0803A638210008AC
+S2190269D44E8000203C80FF00608400007C9E9BA63CA0FA106079
+S2190269E9A500013C60000060630000986500007C788AA63C60D0
+S2190269FE0A007C0004AC7C788BA63C600C007C0004AC7C788BCF
+S219026A13A63C6004007C0004AC7C788BA63C6001007C0004AC07
+S219026A287C788BA63C6007007C0004AC7C788BA67C708AA63CE1
+S219026A3D600A007C708BA64C00012C3C600C007C708BA64C002C
+S219026A52012C3C6004007C708BA64C00012C7C0004AC3C6000FD
+S219026A676060632400906400003C60FFFF6063FF8890640004FC
+S219026A7C3C600000606300C2B06402003C6055CC6063AA3390DA
+S219026A9164032090640324906403289064032C386000C3B06496
+S219026AA6022038600083B064024038600200B064017A3C601864
+S219026ABB8060631000906401703C60FE00606304013CA0FF804A
+S219026AD060A509609064010090A401043C600000606300813CF2
+S219026AE5A0FFC060A504009064010890A4010C3C600000606390
+S219026AFA00803CA0000060A504009064011090A401143C600031
+S219026B0F00606300803CA0000060A504009064011890A4011CE4
+S219026B243C60FA00606304013CA0FFE060A50930906401209059
+S219026B39A401243C608000606300013CA0A00060A50108906419
+S219026B4E012890A4012C3C60FA21606300013CA0FFFF60A50146
+S219026B63089064013090A401343C60FC00606300013CA0FF80C9
+S219026B7860A509409064013890A4013C3C600200606300009024
+S219026B8D640280806402845463653E2C030000418200103C60A4
+S219026BA25F506063D0004800000C3C6000006063D0009064021C
+S219026BB7843C4000003C60FF0060630014904300003C40000001
+S219026BCC604200007C4210F87C5603A6384000013C60FF006056
+S219026BE1630200B04300003CA0FA1060A500013C6000006063F5
+S219026BF60008986500004E8000207063000E3C80FA1060840005
+S219026C0B01986400004E8000203C80FA106084000138A0000AF5
+S219026C2098A400003CA0000A7CA903A64200000038A0000C98AA
+S219026C35A400003CA0000A7CA903A6420000003863FFFF2C03E1
+S219026C4A00004080FFD038A0000698A400003CA000147CA9036D
+S219026C5FA6420000004E8000203D20000339292BC85463073E92
+S219026C747C6918AE4E8000209421FFF87C0802A69001000C3DB9
+S219026C89200003806942E82C0300004181000C48001B454800CC
+S219026C9E000C3800FFFF900942E88001000C7C0803A6382100C2
+S219026CB3084E8000203803FF9F280000054181000C3863FFA9B8
+S219026CC84E8000203923FFD05520063E280000094181000C7D62
+S219026CDD234B784E8000203803FFBF280000054081000C38603C
+S219026CF2FFFF4E8000203863FFC94E8000209421FFE07C08022F
+S219026D07A6900100243800000098010018906100104BFFFF657D
+S219026D1C5463063E388100084800001D2C0300014082FFEC80DD
+S219026D310100247C0803A6382100204E8000209421FFF07C0865
+S219026D4602A693C1000893E1000C900100147C9F2378897F004A
+S219026D5B102C0B0000408200282C0300244082009839200001E4
+S219026D703800FFFF901F0004993F0010917F0000917F000C48C2
+S219026D8500007C2C0B0001408200542C03002340820020815F14
+S219026D9A0008817F000C380000007C0A59AE39200002993F00D1
+S219026DAF1048000050817F000C2C0B0800418200E8801F00008B
+S219026DC4813F00087C001A14901F00007C6959AE380B000190D2
+S219026DD91F000C480000242C0B0002408200245463063E4BFFA3
+S219026DEEFECD5463203638000003907F0004981F001038600004
+S219026E0300480000AC2C0B0003408200985463063E4BFFFEA503
+S219026E18801F0004893F00037C001B787C090000901F00044168
+S219026E2D8200103860002D4800196D4800006C3860002B480065
+S219026E421961813F0008880900022C00003A4082004C886900FA
+S219026E570083DF000C48001945813F00088869000148001939B7
+S219026E6C396000037C0BF040418100287FCAF3787FE4FB7881C2
+S219026E812400087C0958AE7D2B4A14396B00017C0B50409809DB
+S219026E96FFFD4081FFE8386000014800001038000000981F005C
+S219026EAB103860FFFF800100147C0803A683C1000883E1000CA7
+S219026EC0382100104E8000209421FFE07C0802A69361000C930C
+S219026ED581001093A1001493C1001893E1001C900100243D20BA
+S219026EEA00033B692BC87C7C1B7838600024480018A98BFC001B
+S219026EFF003BC000002C1F00003BA00000418200247FE3FB789A
+S219026F144800188D7C1DFA143BDE00017FFCF0AE541D063E2CB9
+S219026F291F00004082FFE4386000234800186D57A0E13E7C7BF3
+S219026F3E00AE4800186157A0073E7C7B00AE480018554BFFFDEB
+S219026F532D5463067E2C03002B4082FF98800100247C0803A635
+S219026F688361000C8381001083A1001483C1001883E1001C38BD
+S219026F7D2100204E8000209421FFD87C0802A6936100149381F5
+S219026F92001893A1001C93C1002093E100249001002C3D200055
+S219026FA703816947A83D4000032C0B000038000000900A42EC3B
+S219026FBC3F6000033F800003408101383FC000033FA000033D3A
+S219026FD1200003800947B42C0000004182006C801C47A83D607A
+S219026FE600032800000340810018801E47AC70090003408200B9
+S219026FFB0C3BE0000448000034801C47A83BE000012800000103
+S21902701040810024800B47AC540007FE7C0000D07C00FE707CF6
+S2190270250900F8540007FE552907BC7C1F4B78808B47AC3861BF
+S21902703A00087FE5FB784800232548000014813E47AC3BE000A2
+S21902704F0188090000980100083D200003800942EC2C000000AF
+S21902706440820098390000007C08F8004080006C3D200003383D
+S219027079C92BC838A100083CE000033C8000037D6828AE8147FD
+S21902708E47B05560E13E7D2600AE992A0000800442EC394A00D2
+S2190270A3012C000000914747B0408200505560073E7D2600AE78
+S2190270B8396A0001992A0000801B42EC916747B02C0000004031
+S2190270CD820030390800017C08F8004180FFB0813D47A8801E7C
+S2190270E247AC7D3F48502C0900007C00FA14901E47AC913D47D6
+S2190270F7A84181FED88001002C7C0803A683610014838100184F
+S21902710C83A1001C83C1002083E10024382100284E8000209438
+S21902712121FFE87C0802A693A1000C93C1001093E10014900161
+S219027136001C2C0600003D2000033D6000033D4000033D000032
+S21902714B03908947B0906B47AC90AA47A890C847B441820030B8
+S2190271603FA0000338000000901D42EC813D42EC4BFFFE158154
+S2190271753D42EC801D42EC2C00000041820010386000004800E9
+S21902718A001C4BFFFDF93D600003812B47B03800000098090071
+S21902719F00806B47B08001001C7C0803A683A1000C83C10010A4
+S2190271B483E10014382100184E8000209421FFC07C0802A692B6
+S2190271C981001092A1001492C1001892E1001C93010020932170
+S2190271DE0024934100289361002C9381003093A1003493C10055
+S2190271F33893E1003C900100443D200003800947A83B60000050
+S2190272082C0000003D200003936942EC3E8000033EA0000340D2
+S21902721D8101703D200003816947AC3F000003880B00002C0025
+S2190272320000418201583EC000033F4000033EE00003801647A3
+S219027247B42C00000041820058801547A82800000340810018A8
+S21902725C801A47B0700900034082000C3BC000044800003C8038
+S2190272711547A83BC00001280000014081002C801A47B0540006
+S21902728607FE7C0000D07C00FE707C0900F8540007FE55290756
+S21902729BBC7C1E4B78480000083BC000013BE000007C1FF000CC
+S2190272B0408000743FA000033F2000033B810008813D47AC884D
+S2190272C569000039290001913D47AC5463063E4BFFF9E5801964
+S2190272DA42EC547B26362C000000408200A8813847AC8869000C
+S2190272EF0039290001913847AC5463063E4BFFF9BD801442ECA7
+S2190273047F631B782C000000547B063E4082007C7F7FE1AE3BB3
+S219027319FF00017C1FF0004180FFA0801647B42C0000004182ED
+S21902732E0018809A47B0386100087FC5F3784800208948000091
+S2190273430C813A47B09B6900003D200003800942EC2C00000029
+S21902735840820034813747A8801A47B07D3E48502C0900007CE7
+S21902736D00F214901A47B0913747A840810014813847AC880994
+S21902738200002C0000004082FEBC800100447C0803A682810052
+S2190273971082A1001482C1001882E1001C83010020832100244D
+S2190273AC834100288361002C8381003083A1003483C10038833E
+S2190273C1E1003C382100404E8000209421FFE87C0802A693A110
+S2190273D6000C93C1001093E100149001001C2C0600003D200067
+S2190273EB033D6000033D4000033D000003906947AC908B47B025
+S21902740090AA47A890C847B4418200303FA00003380000009057
+S2190274151D42EC813D42EC4BFFFDA5813D42EC801D42EC2C0055
+S21902742A00004182001038600000480000104BFFFD893D200056
+S21902743F03806947B08001001C7C0803A683A1000C83C1001000
+S21902745483E10014382100184E8000209421FFF87C0802A690DD
+S21902746901000C48001AA53D20000338000001900942D080012E
+S21902747E000C7C0803A6382100084E8000209421FFE87C080248
+S219027493A693A1000C93C1001093E100149001001C7C9E2378A9
+S2190274A83BA000007C7F1B7893BE000048000024801E00008183
+S2190274BD3F0000540020367C001B7839290001901E0000913FDA
+S2190274D200003BBD0001813F0000886900002C03000041820002
+S2190274E7104BFFF7D17C631B794080FFC87FA3EB788001001C4B
+S2190274FC7C0803A683A1000C83C1001083E10014382100184E8C
+S2190275118000207C8423793940000040820018380000309803CC
+S219027526000198030000386000024E800020392500077D20FE25
+S21902753B7054001F7E7D2902147D251E71418200603D20000363
+S21902755038C92BC838E5FFFF54E018387C88043068A900012022
+S2190275650900007D2049143168FFFF7C0B41107C0B4B7941828A
+S21902757A00285508063E5500E13E7D6600AE5509073E7C0648BA
+S21902758FAE996300009C03000138630001394A00027CE53B7960
+S2190275A44082FFB07D4353784E8000204E8000204E8000209471
+S2190275B921FFF07C0802A693C1000893E1000C900100143D209C
+S2190275CE0003800942E42C00000041820010800942E47C0803BA
+S2190275E3A64E8000213D200003800947D82C00000041820014EC
+S2190275F838000000900947D83BE00002480000104800766948A3
+S21902760D00759D7C7F1B78480077252C0300004182000848009B
+S2190276227751480077114BFFFF8D480076C13860000348001B61
+S219027637D13860000348001B612C1F0000418200203FC00003D7
+S21902764C813E42D47FE3FB787D2803A64E8000212C03000040CC
+S21902766182FFEC480076CD3D200003800942E02C00000041821B
+S2190276760010800942E07C0803A64E800021800100147C080305
+S21902768BA683C1000883E1000C382100104E8000209421FFB8BE
+S2190276A07C0802A6936100349381003893A1003C93C100409397
+S2190276B5E100449001004C7C7E1B783BE000003F6000033B81B1
+S2190276CA0028801B47C43BA000012C0000004182001C7FE3FB92
+S2190276DF787F84E3787C0803A64E8000217C7D1B7848000010B9
+S2190276F47FE3FB784800108190610028381FFFE02800001F7CBA
+S2190277090A03782F9D00003BFF00017F83E3784181004C390034
+S21902771E00047D0903A6386100087C6B1B783800000039200070
+S219027733007C0B49AE392900014200FFF8380000047C0903A6B6
+S2190277487C6943787F8BE378880B0000396B000198090000390E
+S21902775D2900014200FFF0419E0030200A001F7C0001107C054F
+S21902777200F85400077A54A507387FC4F3787C052B7838C0002C
+S219027787004BFFF9997C7E1B7848000058212A001F7D29491074
+S21902779C7D2048F8540006F6552907387D2903782C0900007F12
+S2190277B1CBF378380000783929FFFF418200182C090000980BC3
+S2190277C60000396B00013929FFFF4082FFF0280A001F418100DE
+S2190277DB0C3BDE0010480000083BDE00082C1F00464081FEE0BC
+S2190277F08001004C7C0803A6836100348381003883A1003C834C
+S219027805C1004083E10044382100484E8000209421FFD07C0827
+S21902781A02A67D8000269381002093A1002493C1002893E1000B
+S21902782F2C900100349181001C88030000386300012C0000507B
+S2190278447C9D237890610008392000003BC00047408200703876
+S2190278596100083881000C4BFFFC2D2C030000418200288121B6
+S21902786E000888090000392900012C00003D912100084082001D
+S219027883108121000C3BC90001480000383D20000388092BE0AA
+S2190278987FA4EB782C00000039692BE0418200D8880B000098AF
+S2190278AD0400008D2B0001388400012C0900004082FFEC48001B
+S2190278C200BC7D3F4B787C1FF000408000803B800000397FFF32
+S2190278D7E020AB001F7CA52910392100103881000C7CA028F806
+S2190278EC7C8428787CA9483854A5077A54000738806100082A1B
+S2190279010B001F7CA503787D2423789381001038C000004BFF02
+S219027916FAB9808100107FE3FB7848000E6D4191001081210075
+S21902792B08392900104800000C812100083929000891210008A4
+S2190279403BFF00017C1FF0004180FF8C3D20000388092BE47F9A
+S219027955A4EB782C00000039692BE44182001C880B0000980424
+S21902796A00008D2B0001388400012C0900004082FFEC38000071
+S21902797F0098040000800100348181001C7C0803A6838100202C
+S21902799483A1002483C1002883E1002C7D808120382100304E1E
+S2190279A98000209421FF287C0802A693A100CC93C100D093E182
+S2190279BE00D4900100DC3BA000003D6000047C7E1B789BAB9687
+S2190279D3E4893E00003809FFC128000034418108283D600003FE
+S2190279E8396B2BF85400103A7D4B002E3D20000339292BF87DC6
+S2190279FD4A4A147D4903A64E800420480072694800719D3D208F
+S219027A12000339292BC85460E73E7D0900AE5463073E7CE9187A
+S219027A27AE3D40000438000053392A96E4980A96E439600000F7
+S219027A3C996900039909000198E90002480007D4387E000148E1
+S219027A51000B6D480007C8387E000148000CE5480007BC3C60F3
+S219027A660004386396E44BFFFC31480007AC881E00012C0000A6
+S219027A7B0040820040480009013D20000388092BE43D600004FA
+S219027A902C000000396B96E439492BE441820748880A00008DCE
+S219027AA52A0001980B00002C090000396B00014082FFEC480028
+S219027ABA072C381E0001900100883BC1008C3BE100887FE3FB84
+S219027ACF787FC4F3784BFFF9B92C030000418200A481210088B9
+S219027AE488090000392900012C00002C912100884082008C7F33
+S219027AF9E3FB78388100904BFFF98D2C030000418200788121F6
+S219027B0E008888090000392900012C00002C912100884082008B
+S219027B23608081008C2C04000041820038806100904800088DE0
+S219027B387C641B79418200148061008880A1008C38C000004B8D
+S219027B4DFFF8818001008C812100887C0002147D29021491216D
+S219027B62008881210088880900002C00002C4082001038090059
+S219027B7701900100884BFFFF5081210088880900002C00000058
+S219027B8C4082003C3D20000388092BE43D6000042C00000039D9
+S219027BA16B96E439492BE44182063C880A00008D2A0001980B60
+S219027BB600002C090000396B00014082FFEC480006203D200061
+S219027BCB0388092BE83D6000042C000000396B96E439492BE877
+S219027BE041820604880A00008D2A0001980B00002C0900003961
+S219027BF56B00014082FFEC480005E83C8000047FC3F3783884FD
+S219027C0A96E44BFFFC094800060C381E00013BE10094900100A3
+S219027C1F947FE3FB78388100984BFFF8652C0300004182009066
+S219027C348121009488090000392900012C00002C91210094402C
+S219027C498200787FE3FB783881009C4BFFF8392C03000041828E
+S219027C5E0064806100983C80000480A1009C388496E438C00082
+S219027C73014BFFF4AD2C030000408205A03D600003880B2BEC29
+S219027C883D2000042C000000394996E4396B2BEC4182001C8835
+S219027C9D0B00008D2B0001980A00002C090000394A00014082EA
+S219027CB2FFEC38000000980A0000480005603D20000388092B28
+S219027CC7E83D6000042C000000396B96E439492BE84182050C65
+S219027CDC880A00008D2A0001980B00002C090000396B00014085
+S219027CF182FFEC480004F03BA00001381E00013BE100A090014E
+S219027D0600A07FE3FB78388100A44BFFF77D2C030000418201DE
+S219027D1BF8812100A088090000392900012C00002C912100A074
+S219027D30408201E07FE3FB78388100A84BFFF7512C030000415C
+S219027D458201CC806100A088030000386300012C00003A9061D4
+S219027D5A00A0408201B42C1D000041820124800100A82C000070
+S219027D6F00418200A8800100A83BE000007C1F0040408000545A
+S219027D8439410008816100A0892B0000396B00017D204B782CFA
+S219027D9900007D7D2AF9AE916100A040820018880B0000392BA0
+S219027DAE0001600000207C0AF9AE912100A03BFF0001281F0037
+S219027DC37F41810010800100A87C1F00404180FFB8808100A432
+S219027DD8386100087FE5FB78480015E57C03F8004082002481F7
+S219027DED2100A8800100A47D3F48502C0900007C00FA149001E8
+S219027E0200A4912100A84082FF6C800100A82C00000040820022
+S219027E173C3D20000388092BE43D6000042C000000396B96E428
+S219027E2C39492BE4418203B4880A00008D2A0001980B00002C16
+S219027E41090000396B00014082FFEC480003983D2000038809F6
+S219027E562BEC3D6000042C000000396B96E439492BEC418203AF
+S219027E6B7C880A00008D2A0001980B00002C090000396B0001B8
+S219027E804082FFEC48000360808100A480A100A838C000014BDC
+S219027E95FFF5392C0300004182003C3D20000388092BE43D60D9
+S219027EAA00042C000000396B96E439492BE44182032C880A0059
+S219027EBF008D2A0001980B00002C090000396B00014082FFECC5
+S219027ED4480003103D20000388092BEC3D6000042C0000003929
+S219027EE96B96E439492BEC418202F4880A00008D2A0001980B59
+S219027EFE00002C090000396B00014082FFEC480002D83D200062
+S219027F130388092BF03D6000042C000000396B96E439492BF01B
+S219027F28418202BC880A00008D2A0001980B00002C0900003961
+S219027F3D6B00014082FFEC480002A0881E0000395E0001680976
+S219027F520053216900007D2B491468000043216000007C0B017D
+S219027F67147C0B4B7939600000914100AC916100B03BE100AC1E
+S219027F7C418200287FE3FB78388100B04BFFF505812100AC88A6
+S219027F910900002C00003B4082000C38090001900100AC7FE3B5
+S219027FA6FB78388100B44BFFF4E12C0300004182000C806100E1
+S219027FBBB448006CC9386000034800124138600003480011D17E
+S219027FD0806100B02C0300004182004C3D200003800942DC2C93
+S219027FE50000004182001C800942DC7C0803A64E8000217C63FF
+S219027FFA1B7940820008906100B0800100B02C0000004182004C
+S21902800F1838000009900100B0386000094800030D4800020870
+S2190280244800094D2C0300004182001838000063981E00003D0A
+S21902803920000338000001900942FC881E000068090053216904
+S21902804E00007D2B491468000073216000007C0B01147C0B4B47
+S2190280637941820024386000004BFFF5453D20000439292F246F
+S2190280783D600003912B42F848006C2D4800000C386000014B3D
+S21902808DFFF525386000034800117138600003480011013860CC
+S2190280A2FFFF480001883D200003800942D87C0803A64E8000F5
+S2190280B721386000014800017048000F8948000158381E000162
+S2190280CC900100B8386100B8388100BC4BFFF3B52C0300004127
+S2190280E182007C812100B888090000392900012C00002C91212D
+S2190280F600B84082006488090000392900012C0000439121007B
+S21902810BB840820010806100BC48001AD14800000C806100BC0D
+S21902812048001ABD3D20000388092BE43D6000042C000000391E
+S2190281356B96E439492BE4418200A8880A00008D2A0001980B60
+S21902814A00002C090000396B00014082FFEC4800008C3D200061
+S21902815F0388092BE83D6000042C000000396B96E439492BE8DD
+S21902817441820070880A00008D2A0001980B00002C0900003961
+S2190281896B00014082FFEC48000054381E0001900100C03861E4
+S21902819E00C0388100C44BFFF2E92C030000408200443D2000D1
+S2190281B30388092BF43D6000042C000000396B96E439492BF471
+S2190281C84182001C880A00008D2A0001980B00002C0900003961
+S2190281DD6B00014082FFEC38000000980B0000480000303C607E
+S2190281F2000338632BE44BFFECD1806100C4480006154800006D
+S219028207183C8000047FC3F378388496E438A0012C4800121130
+S21902821C3C600004386396E44BFFECA538600000800100DC7C45
+S2190282310803A683A100CC83C100D083E100D4382100D84E8045
+S21902824600209421FFE87C0802A693A1000C93C1001093E1001C
+S21902825B149001001C3FA00004389D96E448000E21387D96E46E
+S2190282704BFFEC598001001C7C0803A683A1000C83C100108392
+S219028285E10014382100184E8000209421FFF07C0802A693E145
+S21902829A000C900100143D200003800942E82C00000040800018
+S2190282AF084BFFFF993FE00004387F8EE44BFFEA45387F8EE4DB
+S2190282C44BFFF6E97C631B794182FFEC7C6318F854630FFE8021
+S2190282D90100147C0803A683E1000C382100104E8000204E80B2
+S2190282EE00209421FFF87C0802A69001000C4BFFF16548000CEB
+S219028303553860002B480004998001000C7C0803A63821000846
+S2190283184E8000203D200003906942E84E8000209421FFF87CC2
+S21902832D0802A69001000C3D20000339292BC85460E73E7D4993
+S21902834200AE5463073E7D0918AE3D60000438000058386B96BF
+S219028357E4980B96E43920000099430001990300029923000376
+S21902836C4BFFEB5D8001000C7C0803A6382100084E8000203D1D
+S21902838120000438A0000039299F343CC0000338E0FFFF3C80DE
+S21902839600033D6000043D4000033D0000033800000190E64771
+S2190283ABBC90AB9EE4912A47C0900842F090A447B84E80002090
+S2190283C09421FFF07C0802A693C1000893E1000C900100143D13
+S2190283D5200003800942F07C7F1B782C0000007C9E237840827D
+S2190283EA00084BFFFF952C1F0012418100243D600003800B47DC
+S2190283FFC03D20000439299F347C0900507C00F214280000800D
+S2190284144081000C386000004800006C3CE00003800747BC7C0E
+S2190284291F00004182004C3D000003800847B87C1F00004180E6
+S21902843E0020395F00013D20000439299EE4554B103A38000002
+S219028453007C09592E914847B83D600003814B47C03D20000455
+S21902846839299EE457E0103A7D49012E93E747BC3D2000038041
+S21902847D6947C07C03F214900947C0800100147C0803A683C148
+S219028492000883E1000C382100104E8000209421FFD87C0802ED
+S2190284A7A6936100149381001893A1001C93C1002093E1002483
+S2190284BC9001002C3D600003800B42F47C7D1B782C0000007C52
+S2190284D19E23787CBF2B7840820058380000013D200004392962
+S2190284E69FB4900B42F439400000380000087C0903A6390A002C
+S2190284FB01554BC00E5547103A2C0B00005560083C4080000C14
+S2190285106C0004C168001DB77C0B03784200FFE87D0A4378284D
+S2190285250A00FF7C09392E4081FFC43D600003380000003D208C
+S21902853A00043B699FB4900B42EC3F8000034800002489210089
+S21902854F0857E0463E7C004A785400103A7D7B002E57E9402E9D
+S2190285647D3F5A783BBD00012C1E00003BDEFFFF4182002038F8
+S2190285796100087FA4EB7838A0000148000DE1801C42EC2C00F2
+S21902858E00004182FFBC7FE3FB788001002C7C0803A6836100C0
+S2190285A3148381001883A1001C83C1002083E1002438210028DF
+S2190285B84E8000209421FFD87C0802A693A1001C93C1002093AA
+S2190285CDE100249001002C3D20000438000000980996E43BA938
+S2190285E296E47C691B7890610008880900002C000043408200D0
+S2190285F7F4880900012C000052408200E88BC900022C1E0043D7
+S21902860C408200DC880900032C00003A408200D0380900043BA8
+S219028621E10008900100087FE3FB783881000C4BFFEE5D2C035D
+S2190286360000418200EC8121000888090000392900012C0000AF
+S21902864B2C91210008408200D47FE3FB78388100104BFFEE3190
+S2190286602C030000418200C08061000C8081001038A0FFFF4B2D
+S219028675FFFE2D3D20000383E942EC2C1F0000418200403D201A
+S21902868A000388092BE87FA3EB782C00000039692BE841820004
+S21902869F1C880B00008D2B0001980300002C09000038630001EB
+S2190286B44082FFEC3800000098030000480000647C641B7838D3
+S2190286C97D000138A000204BFFEE453D2000049BC996E43863C8
+S2190286DE00017FFD19AE4800004081210008880900007D234B8E
+S2190286F3782C00004C7C090378418200284181000C2C00004353
+S219028708480000082C090050418200143C800004388496E4387B
+S21902871DA0012C48000CF98001002C7C0803A683A1001C83C1C8
+S219028732002083E10024382100284E8000209421FFF87C0802E2
+S219028747A69001000C880300002C000070418200143C80000415
+S21902875C388496E438A0012C48000CBD8001000C7C0803A638C3
+S2190287712100084E8000203D200003816942F85463103A7C6371
+S219028786582E4E8000203D200003816942F85463103A7C835986
+S21902879B2E4E8000209421FFF87C0802A69001000C3D200000D4
+S2190287B039293200816900185464063E806B0000800B000C7C1D
+S2190287C50803A64E8000218001000C7C0803A6382100084E800F
+S2190287DA00209421FFF87C0802A69001000C3D200000392932FD
+S2190287EF0081690018806B0000800B00107C0803A64E800021CA
+S2190288048001000C7C0803A6382100084E8000209421FFF87C27
+S2190288190802A69001000C3D20000039293200816900187C6522
+S21902882E1B78806B0000800B0014388000007C0803A64E80005E
+S219028843218001000C7C0803A6382100084E8000209421FFF843
+S2190288587C0802A69001000C480000158001000C7C0803A638EC
+S21902886D2100084E8000209421FFE87C0802A693A1000C93C17C
+S219028882001093E100149001001C3FC00003817E47C83D200028
+S219028897032C0B0000380000003BBE47C8900942FC7C7F1B78E6
+S2190288AC418200187D635B7848000055801E47C82C000000406C
+S2190288C182002C813F00003C007D82913D000460001008901FF9
+S2190288D6000093FE47C8386000034800092538600003480008EA
+S2190288EBB58001001C7C0803A683A1000C83C1001083E10014F6
+S219028900382100184E8000209421FFF87C0802A69001000C3D4A
+S219028915200003816942FC2C0B0000408200183D200003800901
+S21902892A47C8394947C87C0300004182000C3860000048000063
+S21902893F24800A0004916947C89003000038600003480008B52E
+S2190289543860000348000845386000018001000C7C0803A6384C
+S2190289692100084E8000203D200003800947C83120FFFF7C69AF
+S21902897E01104E8000209421FFF87C0802A69001000C2C03003A
+S21902899300418200483D400003812A43003929FFFF2C090000BA
+S2190289A8912A4300418100683D20000039293200816900183860
+S2190289BD000000900A4300806B0000800B0014388000057C08F6
+S2190289D203A64E8000214800003C3D600003812B43003929007C
+S2190289E7012C090001912B4300408200243D2000003929320067
+S2190289FC8169001838800004806B0000800B00147C0803A64E9C
+S219028A118000218001000C7C0803A6382100084E8000209421EA
+S219028A26FFF87C0802A69001000C3D2000003929320081690099
+S219028A3B18806B0000800B00107C0803A64E8000218001000CD8
+S219028A507C0803A6382100084E8000209421FFC87C0802A69254
+S219028A65C1001092E10014930100189321001C93410020936139
+S219028A7A00249381002893A1002C93C1003093E1003490010063
+S219028A8F3C2C04000D418201CC3D600003814B43043D200004AE
+S219028AA43929A3B47C8951AE2C04000A394A0001914B43043FD9
+S219028AB94000034182000C2C0A00644082019C3D2000003929D7
+S219028ACE320083C900187EE000A67EE0BB783920000051200493
+S219028AE3207C0001243C60000338638C604BFFFD653D20000384
+S219028AF83AC92CD0807E0000813E000C388000247D2803A63B35
+S219028B0D6000003BE0004F4E800021807E0000813E000C388012
+S219028B22004F7D2803A64E800021801A43047C1B000040800073
+S219028B37703D2000043D6000033B09A3B43B2B2CD07D38D8AE79
+S219028B4C807E00005520E13E7F9900AE817E000C7F84E3787DCF
+S219028B616803A65529073E7FB948AE3B7B00014E800021807E52
+S219028B760000813E000C7FA4EB787D2803A64E800021801A4378
+S219028B8B047F9FE214579F063E7C1B00007FBFEA1457BF063E4F
+S219028BA04180FFA8807E0000813E000C388000237D2803A64E11
+S219028BB5800021807E0000813E000C57E0E13E7C9600AE7D287F
+S219028BCA03A64E800021807E0000813E000C57E0073E7C9600A0
+S219028BDFAE7D2803A64E800021807E0000813E00107D2803A674
+S219028BF44E8000215460063E2C00002B986100084182003838F3
+S219028C09610008388000014800142D2C03000040820014880116
+S219028C1E00082C00002D4082FFC44BFFFED43D20000039293247
+S219028C330038000001900900443D200003380000009009430497
+S219028C483C60000338638C604BFFFCB97C0000A652E004207CF7
+S219028C5D0001248001003C7C0803A682C1001082E1001483019E
+S219028C7200188321001C83410020836100248381002883A100D2
+S219028C872C83C1003083E10034382100384E8000209421FFE87E
+S219028C9C7C0802A693A1000C93C1001093E100149001001C7C3B
+S219028CB1BF2B787FE0FB782C0000007C7D1B787C9E23783BFFCC
+S219028CC6FFFF41820024889E00007FA3EB784BFFFD897FE0FBD8
+S219028CDB782C0000003BDE00013BFFFFFF4082FFE48001001C45
+S219028CF07C0803A683A1000C83C1001083E10014382100184E80
+S219028D058000209421FFE87C0802A693A1000C93C1001093E1D2
+S219028D1A00149001001C7CBF2B787FE0FB782C0000007C7D1B8C
+S219028D2F787C9E23783BFFFFFF418200247FA3EB784BFFFCE52C
+S219028D447FE0FB782C000000987E00003BDE00013BFFFFFF406D
+S219028D5982FFE48001001C7C0803A683A1000C83C1001083E1E7
+S219028D6E0014382100184E8000209421FF909081000C90A100E4
+S219028D831090C1001490E100189101001C912100209141002460
+S219028D9838600000382100704E8000209421FFF87C0802A69008
+S219028DAD01000C386000004BFFFBD13D600004380000207C0971
+S219028DC203A63D200003814947D4396B2F243D00000339200017
+S219028DD7007C09502E7C09592E392900044200FFF47D6A5B781C
+S219028DEC3D200003816947D4800B0094900A0100812B0090917F
+S219028E012A0104800B0080900A0108812B0088912A010C800BF1
+S219028E16008C900A0110812B0084912A01143D4000033D6000EC
+S219028E2B03800B42FC3D2000042C00000039292F24912A42F828
+S219028E404182001838000000900842FC386000404BFFF9294B9E
+S219028E55FFFAB5386000404BFFF91D4BFFFAA93D2000039069D5
+S219028E6A47D88001000C7C0803A6382100084E8000209421FF10
+S219028E7FF87C0802A69001000C380000207C0903A63D20000330
+S219028E94814947D43D600004396B2F24392000007C09582E7C65
+S219028EA909512E392900044200FFF47D6A5B783D200003816986
+S219028EBE47D4800A0100900B0094812A0104912B0090800A013C
+S219028ED308900B0080812A010C912B0088800A0110900B008CA2
+S219028EE8812A0114912B0084386000014BFFFA918001000C7CF7
+S219028EFD0803A6382100084E800020386000004E8000203D2076
+S219028F12000339298F083D400003912A42DC3D600003396B901A
+S219028F27483D200003916942D83D4000033D600003394A8DA49E
+S219028F3C914B42E43D20000339298E7C3D600003912B42E04E7F
+S219028F518000209421FFF07C0802A693C1000893E1000C900127
+S219028F6600143D200003800943082C000000408200BC380000C5
+S219028F7B019009430848005E213D2000003BC93200813E0034A8
+S219028F903860FFFF7D2803A64E800021813E00347C7F1B783839
+S219028FA560FFFD7D2803A64E800021815E00143D200003392962
+S219028FBA8C98912A00043D6000036FE0FFFF396B8D086800FF2B
+S219028FCFFE3D200003916A000839298A5C3100FFFF7CE8011039
+S219028FE4912A000C3D600003301FFFFF7D00F910396B8A243DA8
+S219028FF92000037CE04039916A001039298D78912A0014418260
+S21902900E0014813E00347FE3FB787D2803A64E800021801E008F
+S21902902330386000007C0803A64E800021800100147C0803A68B
+S21902903883C1000883E1000C382100104E8000209421FFF87CE1
+S21902904D0802A69001000C3D20000039293200800900402C00D4
+S21902906200004182000C7C0803A64E8000218001000C7C0803F3
+S219029077A6382100084E8000207FE000084E8000209421FFD807
+S21902908C7C0802A6936100149381001893A1001C93C100209311
+S2190290A1E100249001002C7C9D23787C7C1B7838000054981D71
+S2190290B600007F8326704BFFDBAD9C7D00017F83E3784BFFDB98
+S2190290CBA17FBFEB789C7F0001386000044BFFDB919C7F0001BD
+S2190290E0386000404BFFDB859C7F00013BA0003A9FBF0001382A
+S2190290F56000404BFFF6813B810008906100083BFF00017FE4A3
+S21902910AFB787F83E37838A0000438C000004BFFE0097C7F1B5C
+S21902911F783B60003B9B7F0000386000004BFFDB3D9C7F0001B6
+S219029134386000014BFFDB319C7F00019FBF0001386000014BD1
+S219029149FFF631906100083BFF00017FE4FB787F83E37838A0A5
+S21902915E000438C000004BFFDFBD7C7F1B7838000000981F0096
+S219029173019B7F00008001002C7C0803A68361001483810018D7
+S21902918883A1001C83C1002083E10024382100284E8000202C04
+S21902919D0300014182002028030001418000502C03000241829E
+S2190291B200242C030003418200304800003C3C0002004C000149
+S2190291C72C7C108BA64C00012C480000283C0004004C00012C01
+S2190291DC7C108BA64C00012C480000143C000C004C00012C7CA8
+S2190291F1108BA64C00012C7C708AA654630FFE4E8000202C03AB
+S21902920600014182002028030001418000682C0300024182001F
+S21902921B202C03000341820028480000543C0002007C0004ACF4
+S2190292307C188BA6480000443D6004007C0004AC7D788BA64896
+S219029245000034380000807C0903A639200000612010003D606C
+S21902925A0E007C0004AC7D398BA67D788BA67C198BA67D788B6B
+S21902926FA6392900104200FFE07C788AA654630FFE4E800020D4
+S2190292843D60000338000001900B42EC3D200003392993543D46
+S219029299600003912B430C3D40000348000098800A47D0280022
+S2190292AE0003408100307080000340820028706000034082003E
+S2190292C320800300003863000490040000812A47D03884000437
+S2190292D83929FFFC4800005C3D600003800B47D02800000140CE
+S2190292ED810034708000014082002C7060000140820024A00377
+S219029302000038630002B0040000812B47D0388400023929FF1C
+S219029317FE912B47D0480000208803000038630001980400003E
+S21902932C812A47D0388400013929FFFF912A47D0800A47D02CA7
+S2190293410000004082FF643D20000338000000900942EC3D202F
+S2190293560003380000009009430C4E8000209421FFE87C0802C8
+S21902936BA69381000893A1000C93C1001093E100149001001C4B
+S2190293807C601B787CBC2B787C8323783FA000037C040378937D
+S2190293959D47D04BFFFEED807D47D07C63E0508001001C7C088F
+S2190293AA03A68381000883A1000C83C1001083E100143821009D
+S2190293BF184E8000209421FFE87C0802A69381000893A1000C68
+S2190293D493C1001093E100149001001C7CBC2B783FA000039394
+S2190293E99D47D04BFFFE99807D47D07C63E0508001001C7C088F
+S2190293FE03A68381000883A1000C83C1001083E1001438210049
+S219029413184E800020386000004E800020386000004E8000202B
+S219029428386000004E8000209421FFF07C0802A693C1000893E3
+S21902943DE1000C900100143D200003800947E02C000000418282
+S21902945200603FE000033BC000007D4000A67D4053783920003D
+S21902946700512004207C000124817F47E0800B0014901F47E017
+S21902947C808B001893CB00187C0000A6514004207C0001248142
+S2190294912B000C80AB0010806B00007D2803A64E800021801F86
+S2190294A647E02C0000004082FFB0800100147C0803A683C100E0
+S2190294BB0883E1000C382100104E8000209421FFF87C0802A6EE
+S2190294D09001000C4BFFFF5D8001000C7C0803A6382100084ED4
+S2190294E58000209069000038000000900900149089000490A997
+S2190294FA0010900900189128000090C9000890E9000C4E800028
+S21902950F20812300002C090000418200F8810300043809FFFFC5
+S21902952428000039418100E83D600003396B2CE85400103A7DAD
+S2190295394B002E3D20000339292CE87D4A4A147D4903A64E8065
+S21902954E04203D20FF0061290200A16900007C0006AC556B06F7
+S2190295633E38000000600080007C0046307D600378540B043EAB
+S219029578B16900007C0006AC480000903D20FF0061290240A1EE
+S21902958D6900007C0006AC556B063E38000000600080007C0093
+S2190295A246307D600378540B043EB16900007C0006AC480000AE
+S2190295B75C3D20FF0061290220A16900007C0006AC556B063EF8
+S2190295CC38000000600080007C0046307D600378540B043EB1CF
+S2190295E16900007C0006AC480000283D20FF00612909408009AF
+S2190295F600007C0006AC540004DE550B68247C005B7890090021
+S21902960B007C0006AC800300003D20000339493FB85408103A13
+S2190296207C0A402E3D200002392960A47C004800418200187C5A
+S2190296350A402E3D2000033929A0B47C0048004C820020800356
+S21902964A00083D6000037C0A412E81430010396B40A43D2000AE
+S21902965F037D4B412E392941907C69412E4E8000207C631B79CD
+S2190296744D8200203803FFFF280000397C0803784D8100203D27
+S219029689600003396B2DD05500103A7D4B002E3D20000339296A
+S21902969E2DD07D4A4A147D4903A64E8004203D20FF0061290047
+S2190296B314816900007C0006AC3C0080007C0044307D6B007863
+S2190296C8916900007C0006AC4E8000203D20FF0061290200A0E8
+S2190296DD0900007C0006AC7000FFF75400043EB00900007C0009
+S2190296F206AC4E8000203D20FF0061290200A00900007C0006A9
+S219029707AC7000FFFB5400043EB00900007C0006AC4E800020C5
+S21902971C3D20FF0061290240A00900007C0006AC7000FFFB5474
+S21902973100043EB00900007C0006AC4E8000203D20FF0061291F
+S2190297460220A00900007C0006AC7000FFF75400043EB0090059
+S21902975B007C0006AC4E8000203D20FF0061290220A009000025
+S2190297707C0006AC7000FFFB5400043EB00900007C0006AC4E7A
+S2190297858000203D20FF0061290940800900007C0006AC5400EE
+S21902979A066E900900007C0006AC4E8000203D20FF006129099B
+S2190297AF48816900007C0006AC3943FFE53C0080007C00543022
+S2190297C47D6B0078916900007C0006AC4E8000207C631B794D53
+S2190297D98200203803FFFF280000397C0803784D8100203D60AE
+S2190297EE0003396B2EB85500103A7D4B002E3D20000339292E4D
+S219029803B87D4A4A147D4903A64E8004203D20FF006129001411
+S219029818816900007C0006AC3C0080007C0044307D6B0378917C
+S21902982D6900007C0006AC4E8000203D20FF0061290200A00909
+S21902984200007C0006AC60000008B00900007C0006AC4E8000BF
+S219029857203D20FF0061290200A00900007C0006AC60000004B2
+S21902986CB00900007C0006AC4E8000203D20FF0061290240A043
+S2190298810900007C0006AC60000004B00900007C0006AC4E807B
+S21902989600203D20FF0061290220A00900007C0006AC60000057
+S2190298AB08B00900007C0006AC4E8000203D20FF0061290220BC
+S2190298C0A00900007C0006AC60000004B00900007C0006AC4E1C
+S2190298D58000203D20FF0061290940800900007C0006AC600091
+S2190298EA0080900900007C0006AC4E8000203D20FF006129093E
+S2190298FF48816900007C0006AC3943FFE53C0080007C005430D1
+S2190299147D6B0378916900007C0006AC4E8000207C631B794DFE
+S2190299298200203803FFFF280000397C0803784D8100203D605C
+S21902993E0003396B2FA05500103A7D4B002E3D20000339292F11
+S219029953A07D4A4A147D4903A64E8004203D20FF0061290010DC
+S219029968816900007C0006AC3C0080007C0044307D6B0378912B
+S21902997D6900007C0006AC4E8000203D20FF0061290200A009B8
+S21902999200007C0006AC60000080B00900007C0006AC4E8000F6
+S2190299A7203D20FF0061290200A00900007C0006AC6000004025
+S2190299BCB00900007C0006AC4E8000203D20FF0061290240A0F2
+S2190299D10900007C0006AC60000080B00900007C0006AC4E80AE
+S2190299E600203D20FF0061290220A00900007C0006AC60000006
+S2190299FB80B00900007C0006AC4E8000203D20FF0061290220F3
+S219029A10A00900007C0006AC60000040B00900007C0006AC4E8E
+S219029A258000203D20FF006129094C816900007C0006AC3943B6
+S219029A3AFFE53C0080007C0054307D6B0378916900007C000691
+S219029A4FAC4E8000207C8723787C631B794D8200203803FFFF28
+S219029A64280000397C0803784D8100203D600003396B30885547
+S219029A7900103A7D4B002E3D200003392930887D4A4A147D492C
+S219029A8E03A64E8004203C0080007C0044303D60FF00616B000D
+S219029AA318808B00007C0006AC7C8400787CEAFE707D493A7892
+S219029AB87D2950507D29FE707C8003787C0048787C8948387D83
+S219029ACD240378908B00007C0006AC4E8000207C8823787C6329
+S219029AE21B794D8200203803FFFF280000394D8100203D6000C0
+S219029AF703396B31705400103A7D4B002E3D2000033929317014
+S219029B0C7D4A4A147D4903A64E8004203D20FF0061290200A02F
+S219029B218900007C0006AC5484063E38000000600080007C00C1
+S219029B3646307C8003785404043EB08900007C0006AC4E800057
+S219029B4B203D20FF0061290240A08900007C0006AC5484063E43
+S219029B6038000000600080007C0046307C8003785404043EB01E
+S219029B758900007C0006AC4E8000203D20FF0061290220A089FE
+S219029B8A00007C0006AC5484063E38000000600080007C00469B
+S219029B9F307C8003785404043EB08900007C0006AC4E80002014
+S219029BB43D20FF0061290940800900007C0006AC540004DE5524
+S219029BC90B68247C005B78900900007C0006AC4E80002038604D
+S219029BDE00014E800020386000014E8000209421FFF87C0802C3
+S219029BF3A69001000C4BFFC54D8001000C7C0803A6382100089C
+S219029C084E8000203C00FE00600001007C0903A64E8004209403
+S219029C1D21FFF87C0802A69001000C4BFFFFE538600000800103
+S219029C32000C7C0803A6382100084E800020386000004E800028
+S219029C47209421FFE87C0802A693A1000C93C1001093E10014ED
+S219029C5C9001001C7C7F1B78386000003BA00001380000002CD9
+S219029C711FFFFE41820040418100102C1FFFFD4182004C480048
+S219029C8600502C1FFFFF408200483D200003812943102C09008D
+S219029C9B003BA9FFFF4181003C7D3D4B78408200343BA0FFFD83
+S219029CB04800002C3D200000392932003D6000039069001893EF
+S219029CC5EB4310480000143BE00000480000083BFF000138000B
+S219029CDA00012C000000418200803D2000003BC93200813E00AC
+S219029CEF182C09000041820018806900008009001438800004EF
+S219029D047C0803A64E8000213D2000043929A41857E028347C99
+S219029D19004A143D2000032C030000901E001893E94310813EED
+S219029D2E00184182001C8069000080090014388000057C080358
+S219029D43A64E80002148000018806900008009001438800004CD
+S219029D587C0803A64E8000217FA3EB788001001C7C0803A68301
+S219029D6DA1000C83C1001083E10014382100184E800020394089
+S219029D820001380000002C03FFFE41820040418100102C03FF5D
+S219029D97FD4182004C480000502C03FFFF408200483D20000375
+S219029DAC812943142C0900003949FFFF4181003C7D2A4B78403D
+S219029DC18200343940FFFD4800002C3D200000392932003D6059
+S219029DD6000390090014906B4314480000143860000048000033
+S219029DEB0838630001380000012C000000418200283D20000407
+S219029E003929A418546028343D6000007C004A14396B32003D8E
+S219029E15200003900B0014906943147D4353784E8000204E80C8
+S219029E2A00204E8000209421FFF87C0802A69001000C3D6000FC
+S219029E3F00392B320081290018800B32002C00001340820020D1
+S219029E5438000014900B32008069000080090014388000057C1A
+S219029E690803A64E8000218001000C7C0803A6382100084E8054
+S219029E7E00209421FFE87C0802A693E100149001001C3D20004E
+S219029E930039293200816900183800000090010008812B0000A0
+S219029EA8800B00187C651B787C8623787D234B78388100087C4A
+S219029EBD0803A64E800021800100087C7F1B782C0000004182E3
+S219029ED200103D200003806947E8480001917FE3FB78800100BC
+S219029EE71C7C0803A683E10014382100184E8000209421FFE8A3
+S219029EFC7C0802A693A1000C93C1001093E100149001001C380D
+S219029F110000407C0903A63D2000003D60000339293200396B91
+S219029F269C40394000007D69512E394A00044200FFF83D200048
+S219029F3B043D6000033929A418396B9C4039000000550A2834D4
+S219029F5038080001390000087D0903A67D69512E394A00044216
+S219029F6500FFF87C0803782C0800024081FFDC3FA00000380001
+S219029F7A0013901D32003D6000033BBD3200396B3FB8917D0066
+S219029F8F043D200000392930003D600003913D0008396B9C0C01
+S219029FA4917D00403D20000339299C1C3D600003913D00103922
+S219029FB96B9BEC917D00483D20000339299C483D600003913D30
+S219029FCE0030396B9D803D400003917D0034394A9E283D20001E
+S219029FE303915D002039299E2C913D001C3860FFFE4BFFFC550B
+S219029FF83860FFFE4BFFFD8538000000901D0024901D0028907E
+S21902A00D1D004C3D200003901D004439298874913D008C800144
+S21902A022001C7C0803A683A1000C83C1001083E1001438210084
+S21902A037184E8000207C842379418200243884FFFF7C0320AE7D
+S21902A04C2C0000034082000C386000014E8000202C0400004004
+S21902A06182FFE4386000004E8000209421FFF87C0802A690018F
+S21902A076000C7C631B793D2000033809A0A4418200088003001C
+S21902A08B943D200000392932008129008C7C0303787D2803A6B6
+S21902A0A04E8000218001000C7C0803A6382100084E8000209418
+S21902A0B521FFF07C0802A693C1000893E1000C900100143D2075
+S21902A0CA0000800932007C7F1B782C000014396932007C9E23E0
+S21902A0DF783860FFFF4082001C812B001838800006806900000E
+S21902A0F4800900147C0803A64E8000217C1F18004082001C7F87
+S21902A109E3FB787FC4F3784BFFFD717C601B797C030378408252
+S21902A11E00287FE3FB787FC4F3784BFFBF797C601B787C09FE06
+S21902A133707D2302787C6348507C63FE707C031838800100145E
+S21902A1487C0803A683C1000883E1000C382100104E8000202893
+S21902A15D0500037C691B78408100107C801B78700B00034182C5
+S21902A17200302C05000038A5FFFF4D820020880400002C0500E9
+S21902A1870098090000388400013929000138A5FFFF4082FFE877
+S21902A19C4E8000202805000F7C6B1B784081003880040000384E
+S21902A1B1A5FFF0900B0000852400042805000F952B000484042E
+S21902A1C60004940B000485240004952B000438840004396B0001
+S21902A1DB044181FFD028050003408100208004000038A5FFFC66
+S21902A1F028050003900B000038840004396B00044181FFE82C4B
+S21902A2050500007D695B7838A5FFFF4D820020880400002C05F8
+S21902A21A000098090000388400013929000138A5FFFF4082FFCB
+S21902A22FE84E800020280500037C691B784081000C70600003F5
+S21902A244418200282C05000038A5FFFF4D8200202C050000984F
+S21902A2598900003929000138A5FFFF4082FFF04E8000205484AB
+S21902A26E063E5480402E7C0023785409801E7C004B787C6B1BFB
+S21902A283782805000F40810024900B0000940B000438A5FFF01C
+S21902A298940B00042805000F940B0004396B00044181FFE428B3
+S21902A2AD0500034081001838A5FFFC28050003900B0000396B6D
+S21902A2C200044181FFF02C0500007D695B784D8200207CA903CA
+S21902A2D7A698890000392900014200FFF84E8000209421FFA8BE
+S21902A2EC7C631B79394100087D4753783900000040820014388B
+S21902A3010000309801000839410009480000247C032B967D20A3
+S21902A31629D67D2918507D6648AE7C030379996A0000394A00C4
+S21902A32B014082FFE47C0A3800418200287D0343787CE93B7874
+S21902A3408C0AFFFF386300017C0A48009804000038840001406A
+S21902A35582FFEC7C681B7838000000980400007D0343783821A0
+S21902A36A00584E8000209421FF987C0802A67D80002692410023
+S21902A37F30926100349281003892A1003C92C1004092E1004467
+S21902A394930100489321004C9341005093610054938100589366
+S21902A3A9A1005C93C1006093E100649001006C9181002C7C99BF
+S21902A3BE23788BB900003AE100082C1D00007EF2BB787C7B1B83
+S21902A3D3787CB82B783BC000003AA000003B390001418204808E
+S21902A3E82C1D00254082043C8BB900003B3900012C1D002D3A80
+S21902A3FDC000003BE00000408200108BB900003B3900013AC0E4
+S21902A41200012C1D0030408200148BB900003B8000013B39006A
+S21902A42701480000083B800000381DFFD0280000094181003CBA
+S21902A43C7FA3EB787F24CB787FE9FB781D29000A3929FFD07DC0
+S21902A451291A1488640000388400013803FFD0280000094081F3
+S21902A466FFE47D3F4B787C9923787C7D1B782C1D002E40820003
+S21902A47B3C8BB900003B390001381DFFD0280000093B9C0001A3
+S21902A490418100247F24CB7888640000388400013803FFD02809
+S21902A4A50000094081FFF07C7D1B787C9923782C1D006C3A8037
+S21902A4BA00004082000C8BB900003B390001381DFFA8280000DB
+S21902A4CF203A790001418101F83D600003396B32905400103A3E
+S21902A4E47D4B002E3D200003392932907D4A4A147D4903A64E00
+S21902A4F9800420386000307F6803A63B8000013BE000084E809E
+S21902A50E0021386000787F6803A64E80002189780000556906BC
+S21902A5233E38090001280000084181001C801800085529103A26
+S21902A538396B00017C604A149978000048000030280900074126
+S21902A54D81001C80780004380000083923000498180000913840
+S21902A5620004480000108078000438030004901800042C1D0051
+S21902A577648063000041820028418100102C1D00584182004C14
+S21902A58C480000602C1D0070418200342C1D00784182002C4863
+S21902A5A100004C2C0300004080000C3A80002D7C6300D03CC0C5
+S21902A5B6000338C632583881000838A0000A480000203CC000F7
+S21902A5CB0338C632644800000C3CC0000338C632783881000821
+S21902A5E038A000104BFFFD057C751B787E579378480000EC890A
+S21902A5F57800005569063E38090001280000084181001C8018E8
+S21902A60A00085529103A396B00017C604A14997800004800002C
+S21902A61F30280900074181001C8078000438000008392300043D
+S21902A6349818000091380004480000108078000438030004906A
+S21902A64918000482E300007EE3BB78480003C97C751B78480000
+S21902A65E0080897800005569063E380900012800000841810029
+S21902A6731C801800085529103A396B00017D404A149978000076
+S21902A68848000030280900074181001C815800043800000839D2
+S21902A69D2A000498180000913800044800001081580004380A7F
+S21902A6B2000490180004886A00037F6803A63BDE00014E80006F
+S21902A6C7214800018C3860003F7F6803A63BDE00014E80002111
+S21902A6DC7F55F8503134FFFF7D294910381AFFFF7C0048782F29
+S21902A6F19C00007F4948387D3A03782C140000419E00243BA019
+S21902A7060030418200207E83A3787F6803A63BDE00013A8000A4
+S21902A71B004E800021480000083BA000202C1400002E16000064
+S21902A7303AD5FFFF7F8000264092003C7F40D3782C0000003B5C
+S21902A7455AFFFF4081002C7F5FD3787FA3EB787F6803A63BDE5C
+S21902A75A00014E8000217FE0FB782C0000003BFFFFFF4181FFFC
+S21902A76FE47FFAFB787F880120418200147E83A3787F6803A653
+S21902A7843BDE00014E8000217EA0AB782C0000007ED5B3784085
+S21902A7998100547EBDAB787EFCBB788BFC00007F6803A67FE34B
+S21902A7AEFB783B9C00013BDE00014E8000212C1F000A40820024
+S21902A7C3143860000D7F6803A63BDE00014E8000217FA0EB78A6
+S21902A7D82C0000003BBDFFFF4181FFC47F97E3787FB5EB784175
+S21902A7ED9200687F40D3782C0000003B5AFFFF408100587F5F96
+S21902A802D378386000207F6803A63BDE00014E8000217FE0FB44
+S21902A817782C0000003BFFFFFF4181FFE4480000307FA3EB78A7
+S21902A82C7F6803A63BDE00013A7900014E8000212C1D000A4030
+S21902A8418200143860000D7F6803A63BDE00014E8000218BB9E3
+S21902A85600007E799B782C1D00004082FB887FC3F37880010020
+S21902A86B6C8181002C7C0803A6824100308261003482810038C5
+S21902A88082A1003C82C1004082E10044830100488321004C83F4
+S21902A895410050836100548381005883A1005C83C1006083E1FA
+S21902A8AA00647D808120382100684E8000203D20000381694750
+S21902A8BFEC38000000986B0000396B0001916947EC980B0000E1
+S21902A8D44E8000209421FF707C0802A693A1008493C100889303
+S21902A8E9E1008C900100943D60000390A10010906B47EC38A1D9
+S21902A8FE00083BA1009838000002396000003C60000390A1001F
+S21902A913789081000C90C1001490E100189101001C9121002025
+S21902A92891410024980100709961007193A100743863A8B838CE
+S21902A93DA100704BFFFA31800100947C0803A683A1008483C14A
+S21902A952008883E1008C382100904E8000209421FF707C0802F0
+S21902A967A693A1008493C1008893E1008C9001009490A1001034
+S21902A97C9081000C7C641B789061000838A100083BA1009838A9
+S21902A991000001396000003C60000390A1007890C1001490E1F2
+S21902A9A600189101001C91210020914100249801007099610004
+S21902A9BB7193A100743863AC1438A100704BFFF9A980010094C2
+S21902A9D07C0803A683A1008483C1008883E1008C382100904EA3
+S21902A9E58000209421FFF87C0802A69001000C7C601B787C85D1
+S21902A9FA23783C6000033863AC147C0403784BFFF96980010084
+S21902AA0F0C7C0803A6382100084E8000208803000039200000BF
+S21902AA244800000C88030000392900012C0000003863000140CC
+S21902AA3982FFF07D234B784E8000207C691B78480000102C0340
+S21902AA4E0000386000004D82002088690000880400003884002C
+S21902AA63017C030000392900014182FFE07C6018504E80002020
+S21902AA78880400007C691B784800001098030000880400003807
+S21902AA8D6300012C000000388400014082FFEC380000009803E0
+S21902AAA200007D234B784E8000207C6B1B78480000102C030046
+S21902AAB700386000004D820020886B0000396B00013803FFBF6B
+S21902AACC280000194181000C380300205403063E892400003884
+S21902AAE18400013809FFBF280000194181000C38090020540908
+S21902AAF6063E7D204B787C0300004182FFB47C6018504E800099
+S21902AB0B207CA02B797C691B787C0903A640820014386000003A
+S21902AB204E8000207C6018504E80002088690000880400003844
+S21902AB358400017C030000392900014082FFE42C030000418206
+S21902AB4A00084200FFE0386000004E8000207CA02B797C6B1B7E
+S21902AB5F787C0903A640820018386000004E8000207C60185090
+S21902AB744E80002042400050886B0000396B00013803FFBF284C
+S21902AB890000194181000C380300205403063E8924000038846A
+S21902AB9E00013809FFBF280000194181000C38090020540906C8
+S21902ABB33E7D204B787C0300004082FFB42C0300004082FFB450
+S21902ABC8386000004E8000204800002C89230000880400003807
+S21902ABDD8400017C09000038630001418200148803FFFF88646A
+S21902ABF2FFFF7C6300504E8000207CA02B782C00000038A5FF65
+S21902AC07FF4082FFCC386000004E8000209421FFE87C0802A657
+S21902AC1C9381000893A1000C93C1001093E100149001001C3DEA
+S21902AC31200003800947607C7D1B782C000000408200743D2069
+S21902AC46000039293200800900343860FFFF7C0803A67D3E4BD8
+S21902AC5B783BE000004E8000217C7C1B78813E00347FE3FB7808
+S21902AC707D2803A64E800021813E00147FA4EB788069000080C9
+S21902AC8509000C7C0803A64E80002137FF00014081FFD43D205A
+S21902AC9A000039293200800900347F83E3787C0803A64E8000F5
+S21902ACAF21480000483D20000039293200816900142C0B0000B2
+S21902ACC44182001C806B0000800B000C7FA4EB787C0803A64E12
+S21902ACD98000214800001C816900187FA4EB78806B0000800B5C
+S21902ACEE000C7C0803A64E8000218001001C7C0803A683810054
+S21902AD030883A1000C83C1001083E10014382100184E800020D1
+S21902AD189421FFF07C0802A693E1000C900100143D2000003994
+S21902AD2D293200816900147C7F1B782C0B000040820008816938
+S21902AD420018806B0000800B00107C0803A64E800021987F0024
+S21902AD5700800100147C0803A683E1000C382100104E80002057
+S21902AD6C9421FFE07C0802A69361000C9381001093A10014930C
+S21902AD81C1001893E1001C900100243D200003800947607C7D0F
+S21902AD961B782C000000408200883D200000392932008009001E
+S21902ADAB343860FFFF7C0803A67D3C4B783BE000004E8000210F
+S21902ADC07C7B1B78813C00347FE3FB787D2803A64E8000218169
+S21902ADD57C00147FA4EB78806B0000800B001C7C0803A64E80BF
+S21902ADEA00217C7E1B7941820010881D00002C00000040820038
+S21902ADFF4C37FF00014081FFC03D200000392932008009003487
+S21902AE147F63DB787C0803A64E800021480000643D200000398F
+S21902AE29293200816900142C0B000041820034806B0000800B10
+S21902AE3E001C7FA4EB7848000034817C00307FE3FB787D6803F0
+S21902AE53A63D20000338000001900947604E800021480000200D
+S21902AE68816900187FA4EB78806B0000800B001C7C0803A64E39
+S21902AE7D8000217C7E1B787FC3F378800100247C0803A6836128
+S21902AE92000C8381001083A1001483C1001883E1001C38210017
+S21902AEA7204E8000209421FFE87C0802A69381000893A1000C5D
+S21902AEBC93C1001093E100149001001C3D200003800947607CD5
+S21902AED17D1B782C000000408200803D2000003929320080096D
+S21902AEE600343860FFFF7C0803A67D3E4B783BE000004E8000F2
+S21902AEFB217C7C1B78813E00347FE3FB787D2803A64E8000218A
+S21902AF10813E00142C0900004182001C80690000800900143880
+S21902AF258000077FA5EB787C0803A64E80002137FF00014081EE
+S21902AF3AFFC83D20000039293200800900347F83E3787C0803A2
+S21902AF4FA64E800021480000303D20000039293200812900142A
+S21902AF642C0900004182001C8069000080090014388000077FF9
+S21902AF79A5EB787C0803A64E8000213D200000392932008129FD
+S21902AF8E00182C0900004182001C80690000800900147FA5EBE6
+S21902AFA378388000077C0803A64E8000218001001C7C0803A675
+S21902AFB88381000883A1000C83C1001083E10014382100184EB6
+S21902AFCD8000209421FFD07C0802A693010010932100149341D8
+S21902AFE200189361001C9381002093A1002493C1002893E100AF
+S21902AFF72C900100347C7D1B787CBE2B787FBFEB783B600000A8
+S21902B00C3F2000033F8000033B400000813947882C090000418A
+S21902B021820020896900002C0B00004182001438090001996135
+S21902B036000890194788480000647FC0FE707C1E005054000FD8
+S21902B04BFE7FE9EA78216900007D2B49147C0B48394182003C8B
+S21902B060386000324BFFFE49480000083BDEFFCE2C1E000040B9
+S21902B075810014386100084BFFFCF17C7B1B794182FFE82C1BD6
+S21902B08A0000408200143860FFFF48000180386100084BFFFC8E
+S21902B09F7D880100089B5F00007C0303785400063E2C00000DC2
+S21902B0B44182007C418100282C000008418200D4418100102C8E
+S21902B0C900000341820038480001142C00000A41820058480077
+S21902B0DE01082C00002B418200E8418100102C00002441820066
+S21902B0F3DC480000F02C00007F41820098480000E47C1FE80078
+S21902B108408200183C600003386333184BFFF84D3860FFFE4860
+S21902B11D0000F8987F00003BFF00013F000003480000DC8921BC
+S21902B13200083F0000032C09000A40820010881843182C00007F
+S21902B1470D418200182C09000D40820018881843182C00000AB7
+S21902B15C4082000C9B410008480000A4801C47802C0000004169
+S21902B1718200143860000D4BFFFA9D3860000A4BFFFA958801A2
+S21902B18600083860000198184318480000847C1FE8003F000073
+S21902B19B034182006C801C47802C0000004182001C3860000858
+S21902B1B04BFFFA65386000204BFFFA5D386000084BFFFA553B0D
+S21902B1C5FFFFFF480000407C1FE800408200145463063E4BFF4B
+S21902B1DAD1453860000048000034801C47802C000000418200DD
+S21902B1EF0C886100084BFFFA21880100083F000003981F000058
+S21902B2043BFF000188010008981843184BFFFE08800100347CD6
+S21902B2190803A68301001083210014834100188361001C83813C
+S21902B22E002083A1002483C1002883E1002C382100304E800049
+S21902B243209421FFC07C0802A6924100089261000C9281001032
+S21902B25892A1001492C1001892E1001C9301002093210024937A
+S21902B26D4100289361002C9381003093A1003493C1003893E190
+S21902B282003C900100447C9D23787C7C1B787D3DE0107D2949C7
+S21902B297107D294BB87C1CE8507C0048787FA948387D3D0379F8
+S21902B2AC7CB62B78408101403E4000032C1600004182001438DD
+S21902B2C172331C7C96E0504BFFF699480000103872331C7F8441
+S21902B2D6E3784BFFF6897FBEEB787F9DE3783BE000003E800048
+S21902B2EB033EA000033E6000033B5EFFF03AFD00103F000003B1
+S21902B3003F6000033F2000037C1FF000408000147C9DF8AE38D7
+S21902B3157833284BFFF6494800000C387933304BFFF63D7FFC60
+S21902B32AFE707C1CF8507C000E707C0002147C00F8502C00003D
+S21902B33F014082000C387B33344BFFF61957801F7E7C1F02148B
+S21902B3547C001E70540018387C00F8502C0000074082000C3832
+S21902B3697B33344BFFF5F53BFF00012C1F000F4081FF907FBC92
+S21902B37EEB787FDDF378387433384BFFF5D97EBEAB783BE000E0
+S21902B393007C1FE8004080002C7C9CF8AE3804FFE02000005ED8
+S21902B3A87C0001107C0003B87C0900F87C8000387129002E7CD0
+S21902B3BD044B784800000838800020387E333C4BFFF5953BFF52
+S21902B3D200012C1F000F4081FFBC387333404BFFF5817F5DD3FB
+S21902B3E7797EFCBB784181FECC800100447C0803A682410008DB
+S21902B3FC8261000C8281001082A1001482C1001882E1001C839F
+S21902B41101002083210024834100288361002C8381003083A1E2
+S21902B426003483C1003883E1003C382100404E8000209421FF7F
+S21902B43BF87C0802A69001000C38A000004BFFFDFD8001000C8B
+S21902B4507C0803A6382100084E8000209421FF607C0802A69391
+S21902B46561008C9381009093A1009493C1009893E1009C9001E5
+S21902B47A00A49081000C388100A83FA000033B800000380000BF
+S21902B48F013961000890810074837D47889061000890A1001070
+S21902B4A490C1001490E100189101001C91210020914100249890
+S21902B4B9010070916100789B810071388100704BFFF5213C60EA
+S21902B4CE0003386333444BFFF48D939D478838610080388000B2
+S21902B4E30838A000004BFFFAE988610080937D478868600059D7
+S21902B4F8212000007C09011468630079212300007C6919147C47
+S21902B50D630378800100A47C0803A68361008C8381009083A1CA
+S21902B522009483C1009883E1009C382100A04E8000209421FF02
+S21902B537E87C0802A69381000893A1000C93C1001093E100149C
+S21902B54C9001001C7C9C23787CBD2B787C7F1B783BC0000048D6
+S21902B5610000C857C0103A7FFD012E881F00003BDE00014800F1
+S21902B5760098881F00002C0000224082008457C0103A7D60EABE
+S21902B58B14812BFFFC7C09F8004082000C3BFF000193EBFFFCEA
+S21902B5A0893F0000692000227C0000D07D2900D055290FFE547B
+S21902B5B5000FFE7D2B00394182002C7FE3FB788D23000169208E
+S21902B5CA00227C0000D07D2900D055290FFE54000FFE7D2B00ED
+S21902B5DF394082FFE47C7F1B78881F00002C0000004082002C23
+S21902B5F43C6000033863335C4BFFF365480000083BFF000188BD
+S21902B6091F00002C0000004182004C2C0000204082FF60380026
+S21902B61E0000981F00003BFF0001881F00002C00000041820088
+S21902B6332C2C000020408200187FE3FB788C0300012C000020F8
+S21902B6484182FFF87C7F1B78881F00002C0000004082FF0C3CC2
+S21902B65D6000033C80000380BD000093DC000038634600388466
+S21902B6724670480000258001001C7C0803A68381000883A1009F
+S21902B6870C83C1001083E10014382100184E8000209421FFD8E4
+S21902B69C7C0802A6930100089321000C9341001093610014938B
+S21902B6B181001893A1001C93C1002093E100249001002C7C7FD0
+S21902B6C61B787CBC2B787C9A23787F83E3784BFFF3497FFDFBEF
+S21902B6DB787C1DD0007C7B1B78418200C0809D00007F83E378EB
+S21902B6F07F65DB784BFFF4652C0300004082009C807D00004B8F
+S21902B705FFF3197C03D800408100847C1FD0003BC00001418257
+S21902B71A00603F0000033F2000037C1DF80041820044809F0058
+S21902B72F007F83E3787F65DB784BFFF4212C0300004082002CEE
+S21902B7442C1E00004182001880BD0000387833707F84E3784B8B
+S21902B759FFF2093BC00000809F0000387933984BFFF1F93BFFD6
+S21902B76E00107C1FD0004082FFB02C1E0000408200143C600017
+S21902B783033863339C4BFFF1D9480000187FA3EB7848000014E8
+S21902B7983BBD00107C1DD0004082FF48386000008001002C7C5A
+S21902B7AD0803A6830100088321000C83410010836100148381C3
+S21902B7C2001883A1001C83C1002083E10024382100284E8000D8
+S21902B7D7209421FFE87C0802A69381000893A1000C93C10010AE
+S21902B7EC93E100149001001C7C601B783C6000037C9D23787CCE
+S21902B8011F03787CBE2B78386333A04BFFF1557C1FE800418270
+S21902B81600283F80000380BF000080DF0008387C33A87FC4F3C1
+S21902B82B784BFFF1353BFF00107C1FE8004082FFE48001001C0A
+S21902B8407C0803A68381000883A1000C83C1001083E10014387F
+S21902B8552100184E800020912300149883000090A3000490C343
+S21902B86A000890E3000C910300104E8000209421FFB07C0802BF
+S21902B87FA691C1000891E1000C920100109221001492410018DA
+S21902B8949261001C9281002092A1002492C1002892E1002C9352
+S21902B8A901003093210034934100389361003C9381004093A1A6
+S21902B8BE004493C1004893E1004C900100547D344B787D16439F
+S21902B8D3783016FFFF7D20B1106A800001216000007C0B011437
+S21902B8E87D2B00397C701B787C9823787CD133787CF53B787D9C
+S21902B8FD5353783B4000013A40000041820008925600007C12DA
+S21902B912A8007E3F8B78408000507EA903A67FEBFB78390000BB
+S21902B92700812B00102C0900004182000891090000814B0004DE
+S21902B93C2C0A000040820020800B00082C0000004182000C2C1D
+S21902B9510000024082000C812B000C91490000396B001842007A
+S21902B966FFC47CBD2B787C1D8000408002043DC000033DE0002A
+S21902B97B0357BE103A7C9EC02E880400002C00002D4082014C52
+S21902B990396000007C0BA8008AE400017E3F8B78392000003B10
+S21902B9A57D0001408001147F9EC2143B200001881F00007C17AA
+S21902B9BA0000408200F0813F00102C090000418200208009004E
+S21902B9CF002C00000041820014809F0014386E33B44BFFEF81DF
+S21902B9E43B400000801F00042C00000041820080813C00008875
+S21902B9F90900023BC900032C00003D4182000C83DC00043BBD8D
+S21902BA0E0001801F00082C000000418200102C00000141820085
+S21902BA233C48000040809F000C7FC3F37838A0000038C000009B
+S21902BA38480001992C0300004082002480BF00147FC4F37838C2
+S21902BA4D6F33D44BFFEF113B4000004800000C813F000C93C926
+S21902BA620000813F00103B7D000148000034801F00082C0000F0
+S21902BA7700418200102C0000024182001C48000020817F000C5F
+S21902BA8C812B000039290001912B00004800000C813F000C9320
+S21902BAA12900003960000148000014392900017C09A8003BFFA0
+S21902BAB600184180FEFC2C0B0000408200A83C60000338633393
+S21902BACBFC7EE4BB784BFFEE91480000902C16000041820078B0
+S21902BAE02C12000041820014386E33B47E649B784BFFEE713BCF
+S21902BAF54000002C140000418200102C1400014182003C48005A
+S21902BB0A00407C7EC02E7EC4B37838A0000038C0000048000072
+S21902BB1FB52C030000408200247C9EC02E386F33D47E659B7894
+S21902BB344BFFEE2D3B4000004800000C7C1EC02E901600003B58
+S21902BB497D00013A400001480000183C6000033863341C3B7D45
+S21902BB5E00014BFFEE013B4000007F7DDB787C1D80004180FEEF
+S21902BB730C7F43D378800100547C0803A681C1000881E1000CE3
+S21902BB888201001082210014824100188261001C8281002082D8
+S21902BB9DA1002482C1002882E1002C830100308321003483417D
+S21902BBB200388361003C8381004083A1004483C1004883E10083
+S21902BBC74C382100504E8000208803000038E000012C0000208F
+S21902BBDC3900000A39800000408200108C0300012C0000204162
+S21902BBF182FFF8880300002C0000004182012C2C070000418222
+S21902BC060038880300002C0000304082002C892300013809FF28
+S21902BC1BBF280000194181000C380900205409063E2C09007890
+S21902BC304082000C39000010386300028943000038E000003927
+S21902BC452AFFD0380AFFBF21290009392000007D29491420001B
+S21902BC5A0005380000007C0001147D2B037938630001392000E7
+S21902BC6F0040820010380AFF9F280000054181000839200001B6
+S21902BC842C09000041820068392AFFD05520063E2800000941E7
+S21902BC9981000C7D2B4B7848000030380AFF9F28000005418150
+S21902BCAE000C396AFFA94800001C380AFFBF200000057C00011D
+S21902BCC3107C0003B8392AFFC97C0B48387C0B40004080001C49
+S21902BCD8880300007D2C41D62C0000007D895A144082FF184844
+S21902BCED00003C2C0600004182002C88060000480000088C066E
+S21902BD0200012C000000418200187C0A00004082FFF088060058
+S21902BD17002C0000004082000C386000004E8000202C0500005F
+S21902BD2C918400004182000890650000386000014E8000208817
+S21902BD410300002C000020408200108C0300012C000020418226
+S21902BD56FFF88863000068690074200900007D204914686000BF
+S21902BD6B54214000007C0A01147D2B037941820010380000013C
+S21902BD80900400004800003068690046200900007D20491468F9
+S21902BD95600066214000007C0A01147C0A4B794082000C386020
+S21902BDAA00004E80002091640000386000014E8000209421FF5F
+S21902BDBFE07C0802A69361000C9381001093A1001493C1001884
+S21902BDD493E1001C900100243D2000043969A4A4800BFFD47CE9
+S21902BDE99C23782C0000007CDB33784182000C3800000A480080
+S21902BDFE012838000001B009A4A488030000396B00022C000069
+S21902BE13002F85000041820018980B00008C030001396B0001AC
+S21902BE282C0000004082FFF038000000980B0000396B00014061
+S21902BE3D9E00103D200003386934504800001C2C05000141825D
+S21902BE52000C3800000A480000CC3D2000033869345C88030056
+S21902BE67002C00000041820018980B00008C030001396B0001E0
+S21902BE7C2C0000004082FFF03D2000043BA9A48C380000009888
+S21902BE910B00007FA3EB783880000038A0000C4BFFE3953D600A
+S21902BEA60003812B43203BFDFFEC38000001B13F0018B01F003B
+S21902BEBB1AA01C0004392900012C0000003BC00000912B4320E8
+S21902BED093DF00144082000C38000045B01C00047F85E378381E
+S21902BEE57D0018388002057FA6EB7848003CAD2C030000418044
+S21902BEFA002838000001901DFFEC3920FFFF93DF0004913F0096
+S21902BF0F1093DF000C93DF0008386000004800001038000009DD
+S21902BF24901B00003860FFFF800100247C0803A68361000C837B
+S21902BF3981001083A1001483C1001883E1001C382100204E8000
+S21902BF4E00203D200004380000009009A478386000004E800003
+S21902BF63209421FFC87C0802A692C1001092E100149301001864
+S21902BF789321001C93410020936100249381002893A1002C93A2
+S21902BF8DC1003093E100349001003C7C9923783B6000007C1B50
+S21902BFA2C8003D2000043BC9A4A47C7A1B787CBC2B78408001E9
+S21902BFB7783BFEFFD43B0100083AE000043AC00009813F000CB9
+S21902BFCC2C0900004081005C7C1BC8507F890000809F02347F7C
+S21902BFE143D3784FFEE3827FA0002657BD07FE7FBD00D07C001E
+S21902BFF6E8787D3DE8387FBD03787FA5EB784BFFE159801F0292
+S21902C00B34813F000C7C00EA147D3D4850901F0234913F000C8C
+S21902C0207F7BEA147F5AEA14480000FC801F0010280001FF40DA
+S21902C0358100F838000001900100083920000091380004387FC7
+S21902C04A002C3880020538BF002038DF00147F07C37848003C68
+S21902C05F6D7C631B794080002C813F0004392900012C09000F8E
+S21902C074913F000441810010801F00082C0000004082004438F9
+S21902C0890000084800008CA81E00002C00000340820064813FE4
+S21902C09E0008A97E0002392900017C0B48004082001C3863FFAB
+S21902C0B3FC381E0004907F000C901F0234917F0008907F0010E4
+S21902C0C8A01F000AB2FE0000B01E0002387F002C38800004383C
+S21902C0DDBF002038DF001448003AB92C0300004080003892DC6D
+S21902C0F200003860FFFF480000382C00000540820014A81E004F
+S21902C107023860FFFF901C0000480000203800000B901C000081
+S21902C11C3860FFFF480000107C1BC8004180FEA07F63DB7880A6
+S21902C13101003C7C0803A682C1001082E100148301001883217E
+S21902C146001C83410020836100248381002883A1002C83C10015
+S21902C15B3083E10034382100384E8000203803FFFF2800000B15
+S21902C1703D200003386934644D8100203D600003396B358054DF
+S21902C18500103A7D4B002E3D200003392935807D4A4A147D49FC
+S21902C19A03A64E8004203C600003386334744E8000203C600082
+S21902C1AF03386334844E8000203C600003386334984E8000203C
+S21902C1C43C600003386334BC4E8000203C600003386334D44EB7
+S21902C1D98000203C600003386334E84E8000203C60000338632C
+S21902C1EE34FC4E8000203C6000033863350C4E8000203C600012
+S21902C20303386335204E8000203C6000033863353C4E800020A5
+S21902C2183C600003386335504E8000203C600003386335644E3C
+S21902C22D8000209421FFE87C0802A693A1000C93C1001093E175
+S21902C24200149001001C3D200003800943287C9F23782C0000E9
+S21902C257004082007C48004C153D2000043869A6B08003000405
+S21902C26C2C00000540820018A00300162C00000040820050486C
+S21902C281004CE9480000482C00000040820014480008D9380079
+S21902C296000A981F0000480000603FA00004389DACF438A000F3
+S21902C2AB8048004D512C0300003BBDACF43D2000033D6000034A
+S21902C2C093A94808906B43284082000C38600000480000303D55
+S21902C2D5400003816A48083D000003880B0000396B0001981FA0
+S21902C2EA000081284328916A48083929FFFF91284328386000BD
+S21902C2FF018001001C7C0803A683A1000C83C1001083E100145C
+S21902C314382100184E8000209421FFE07C0802A693A100149313
+S21902C329C1001893E1001C900100243D2000003BA932007C7E6D
+S21902C33E1B783BE000644800002837FFFFFF4082001048000013
+S21902C353513BE0006448000014813D0048386000647D2803A652
+S21902C3684E8000217FC3F378388100084BFFFEBD2C03000041E7
+S21902C37D82FFCC88610008800100247C0803A683A1001483C118
+S21902C392001883E1001C382100204E8000209421FFE87C08026E
+S21902C3A7A693A1000C93C1001093E100149001001C3D2000049A
+S21902C3BC3BA9AD744800003080BE432C7FE3FB787FA4EB784898
+S21902C3D1004D417C631B7940810014801E432C7FBD1A147C0384
+S21902C3E60050901E432C48004A853FC00003801E432C2C00007C
+S21902C3FB00418200303D2000043BE9A6B0801F00042C00000584
+S21902C4104082000C7FE3FB7848004B51801F00042C000000407A
+S21902C42582FFA0480007413D2000003BC93200801E00443D2078
+S21902C43A00042C0000003929AD743D6000033D4000033BE000F8
+S21902C44F00912B480C93EA432C41820010386000004BFFDC0D37
+S21902C46493FE00448001001C7C0803A683A1000C83C100108316
+S21902C479E10014382100184E8000209421FFF07C0802A693E10F
+S21902C48E000C900100143D600003812B480C2C040024988900CC
+S21902C4A30039290001912B480C40820010380000013D2000039F
+S21902C4B8900947F03FE00003801F47F0688B0023212B00007DC1
+S21902C4CD6959143140FFFF7D2A01107D2058394182001C3D40CC
+S21902C4E20003392000013D60000338000000912A47F4900B4731
+S21902C4F7F83D600003812B432C392900012C090100912B432CB2
+S21902C50C4182002C3D200003800947F42C000000418200283DAC
+S21902C521600003812B47F8392900012C090003912B47F8408258
+S21902C53600104BFFFE6938000000901F47F0800100147C0803EE
+S21902C54BA683E1000C382100104E8000209421FFE87C0802A69F
+S21902C56093A1000C93C1001093E100149001001C4800055D7CC0
+S21902C5757D1B783C6000033C80000338A000EC38843678386373
+S21902C58A36704BFFE3D57FA3EB78480005A58001001C7C080352
+S21902C59FA683A1000C83C1001083E10014382100184E8000207F
+S21902C5B49421FFE87C0802A693A1000C93C1001093E1001490E7
+S21902C5C901001C480005017C7D1B783C6000033C80000338A029
+S21902C5DE00FE38843688386336704BFFE3797FA3EB7848000510
+S21902C5F3498001001C7C0803A683A1000C83C1001083E100141D
+S21902C608382100184E8000209421FFE87C0802A6938100089340
+S21902C61DA1000C93C1001093E100149001001C7C7D1B787C9E15
+S21902C63223784BFFFD6D3D200003800943243D6000001FE000B1
+S21902C6470A3B8B320048000014813C0048386000647D2803A62A
+S21902C65C4E8000217FA3EB787FC4F3784BFFFBC97C631B7940DF
+S21902C6718200102C1F00003BFFFFFF4082FFD48001001C7C08E2
+S21902C68603A68381000883A1000C83C1001083E100143821008E
+S21902C69B184E8000209421FF787C0802A693C1008093E1008459
+S21902C6B09001008C7C8023782C00000590A1001090C100149053
+S21902C6C5E100189101001C91210020914100249081000C3BC0D2
+S21902C6DA00004182002C28000005418100102C00000441820162
+S21902C6EF94480003482C000006418203082C0000074182030C03
+S21902C704480003343FE00003801F43303D6000032C0000003961
+S21902C719200001912B433440820014480011C1907F43302C030F
+S21902C72E000041820308811F43303808FFFF28000039418102AB
+S21902C743F83D600003396B36985400103A7D4B002E3D200003DC
+S21902C758392936987D4A4A147D4903A64E8004203D20FF006152
+S21902C76D290014816900007C0006AC3948FFFF3C0080007C00A4
+S21902C78254307D6B0378916900007C0006AC480002A83D20FF3E
+S21902C7970061290200A00900007C0006AC60000008B009000002
+S21902C7AC7C0006AC480002883D20FF0061290200A00900007C64
+S21902C7C10006AC60000004B00900007C0006AC480002683D2050
+S21902C7D6FF0061290240A00900007C0006AC60000004B0090088
+S21902C7EB007C0006AC480002483D20FF0061290220A0090000C1
+S21902C8007C0006AC60000008B00900007C0006AC480002283DF0
+S21902C81520FF0061290220A00900007C0006AC60000004B00948
+S21902C82A00007C0006AC480002083D20FF0061290940800900BA
+S21902C83F007C0006AC60000080900900007C0006AC480001E8D7
+S21902C8543D20FF0061290948816900007C0006AC3948FFE53CD8
+S21902C8690080007C0054307D6B0378916900007C0006AC480060
+S21902C87E01BC3D60000383CB433438000000900B43343D2000D5
+S21902C89303814943302C0A00004182019C7D4853783808FFFFE5
+S21902C8A8280000394181018C3D600003396B37805400103A7DAE
+S21902C8BD4B002E3D200003392937807D4A4A147D4903A64E800B
+S21902C8D204203D20FF0061290014816900007C0006AC3948FF94
+S21902C8E7FF3C0080007C0054307D6B0078916900007C0006ACF2
+S21902C8FC4800013C3D20FF0061290200A00900007C0006AC706C
+S21902C91100FFF75400043EB00900007C0006AC480001183D20D9
+S21902C926FF0061290200A00900007C0006AC7000FFFB540004D1
+S21902C93B3EB00900007C0006AC480000F43D20FF006129024057
+S21902C950A00900007C0006AC7000FFFB5400043EB00900007CBF
+S21902C9650006AC480000D03D20FF0061290220A00900007C00BF
+S21902C97A06AC7000FFF75400043EB00900007C0006AC480000C4
+S21902C98FAC3D20FF0061290220A00900007C0006AC7000FFFB97
+S21902C9A45400043EB00900007C0006AC480000883D20FF00616D
+S21902C9B9290940800900007C0006AC5400066E900900007C005C
+S21902C9CE06AC480000683D20FF0061290948816900007C000648
+S21902C9E3AC3948FFE53C0080007C0054307D6B00789169000011
+S21902C9F87C0006AC4800003C3D20000383C943304800003039A1
+S21902CA0D61000838010090392000039BC10071992100709001F7
+S21902CA220074916100783D200003800B000883C9432490094398
+S21902CA37247FC3F3788001008C7C0803A683C1008083E100842C
+S21902CA4C382100884E8000209421FFE07C0802A693A100149364
+S21902CA61C1001893E1001C900100247C7D1B787C9F23787CA33A
+S21902CA762B784BFFCEAD38000000901F00007FA3EB7838810017
+S21902CA8B084BFFF7A52C03000041820018880100082C000003D7
+S21902CAA04082000C38000001901F000038600001800100247C0A
+S21902CAB50803A683A1001483C1001883E1001C382100204E8059
+S21902CACA00209421FFE87C0802A69381000893A1000C93C100B8
+S21902CADF1093E100149001001C3FA000003BBD3200813D0034FB
+S21902CAF43860FFFF7D2803A64E800021801D00347C7C1B7838BF
+S21902CB096000007C0803A64E8000217F83E3788001001C7C0816
+S21902CB1E03A68381000883A1000C83C1001083E10014382100F1
+S21902CB33184E8000209421FFF87C0802A69001000C3D2000000E
+S21902CB4839293200800900347C0803A64E8000218001000C7C5B
+S21902CB5D0803A6382100084E8000209421FFE87C0802A693A1C0
+S21902CB72000C93C1001093E100149001001C3FA000003BBD32F9
+S21902CB8700817D00343D200003806948007D6803A63D200003E1
+S21902CB9C38000000900947604E800021801D00303D2000038069
+S21902CBB16948047C0803A64E8000213D20000338000001900965
+S21902CBC647808001001C7C0803A683A1000C83C1001083E100DA
+S21902CBDB14382100184E8000209421FFE87C0802A693A1000CC3
+S21902CBF093C1001093E100149001001C3FA000003BBD32008106
+S21902CC051D00343860FFFF7D0803A63D400003392000013D6087
+S21902CC1A000338000000912A4760900B47804E8000213D2000B3
+S21902CC2F0390694800813D0034386000017D2803A64E800021DD
+S21902CC44813D00303860FFFF7D2803A64E8000213D2000038033
+S21902CC591D003090694804386000017C0803A64E8000218001F7
+S21902CC6E001C7C0803A683A1000C83C1001083E100143821000C
+S21902CC83184E8000209421FFE87C0802A69381000893A1000C6B
+S21902CC9893C1001093E100149001001C3FE00003801F43382C7F
+S21902CCAD000000408200A03FA000003BBD3200813D0034386076
+S21902CCC2FFFF7D2803A64E800021813D00347C7C1B7838600006
+S21902CCD7017D2803A64E800021815D00143D2000033929C55832
+S21902CCEC912A00043D600003396BC5B43D200003916A00083914
+S21902CD0129C484912A000C3D600003396BC31C3D200003916A60
+S21902CD1600103929C6A0912A00143D600003396BCA543D20009B
+S21902CD2B03916A00183929C610912A001C801D00347F83E37899
+S21902CD407C0803A64E80002138000001901F43383D2000033FB9
+S21902CD55A00004A0894772387DA6B0480041353BBDA6B0801D88
+S21902CD6A00043D200003900947FC8001001C7C0803A68381009F
+S21902CD7F0883A1000C83C1001083E10014382100184E80002035
+S21902CD949421FFF07C0802A693E1000C90010014480040CD3DFC
+S21902CDA92000043BE9A6B03D200003817F0004800947FC7C0024
+S21902CDBE5800418200602C0B0004408200484BFFFE193C60009C
+S21902CDD3043D2000043929AD743C80000338C3ACF43CA0000323
+S21902CDE8396000013940000D3D0000033CE000033800000090E8
+S21902CDFDC44808916543289943ACF49128480C9007432C801F77
+S21902CE1200042C000000408200084BFFFE6D3D2000048009A6C5
+S21902CE27B43D600003900B47FC800100147C0803A683E1000C8B
+S21902CE3C382100104E8000209421FFE87C0802A693A1000C93E8
+S21902CE51C1001093E100149001001C3D20000380E947742C0708
+S21902CE660000408200283D000003392000013D6000033D40000F
+S21902CE7B03380023289128476C90EB4830900A47704800007CA1
+S21902CE903C6000033C800003386335EC3884483038A000014B14
+S21902CEA5FF5F753C6000033C800003386335C43884477038A061
+S21902CEBA00024BFF5F5D3C6000033C8000033863361C38844706
+S21902CECF6C38A000014BFF5F453C6000033C80000338633638AD
+S21902CEE43884456038A000054BFF5F2D3C6000033C8000043887
+S21902CEF963366038842CF038A000054BFF5F153D200003380019
+S21902CF0E00009009478C4800034D480031813D6000033D20000C
+S21902CF2303392947503BEB47407C1F48004182003C7D3D4B78EA
+S21902CF383BC00001813F00047FE3FB787D2803A64E8000217C8F
+S21902CF4D631B794182000C93DF000C48000008907F000C3BFFDF
+S21902CF6200107C1FE8004082FFD43D200003800948342C0000FA
+S21902CF7700408200143C600003386338684BFFD9DD4800009016
+S21902CF8C3D2000038009476C2C000000418200283C60000438FE
+S21902CFA1632CDC480027912C030000418200143C6000033863C9
+S21902CFB638884BFFD9A9480000103D2000033800000190094702
+S21902CFCB8C3D2000038009478C2C000000418200403C60000334
+S21902CFE038634560480001B97C641B783C600003386338B44B0F
+S21902CFF5FFD96D3C60000438632CF04800019D7C641B783C608F
+S21902D00A0003386338BC4BFFD9514BFFFC758001001C7C080325
+S21902D01FA683A1000C83C1001083E10014382100184E800020F4
+S21902D0349421FFF093E1000C380000047C0903A67C9F23783864
+S21902D049800000398000188963000038E000012C0B000038A066
+S21902D05E000038C0000A3863000141820110696000302120000A
+S21902D073007C0901147CE9003941820030892300003809FFBFCB
+S21902D088280000194181000C380900205409063E2C090078408E
+S21902D09D8200108D63000138C0001038630001392BFFD0380BDA
+S21902D0B2FFBF7D2A4B787C0803785529063E5400063E21290097
+S21902D0C709392000007D29491420000005380000007C000114FA
+S21902D0DC7D27037938E000003920000040820010380BFF9F28CC
+S21902D0F100000541810008392000012C09000041820068554005
+S21902D106063E280000094181000C7D49537848000030380BFF7F
+S21902D11B9F280000054181000C392BFFA94800001C5500063E55
+S21902D130200000057C0001107C0003B8392BFFC97C0948387C4D
+S21902D14509300040800020896300007C0531D62C0B00007CA0EE
+S21902D15A4A14386300014082FF0C480000142C0B002E4182006E
+S21902D16F0C386000004800001C7CA060307C840378398CFFF8B9
+S21902D1844200FECC909F00003860000183E1000C382100104E94
+S21902D1998000209421FFE87C0802A693A1000C93C1001093E1FA
+S21902D1AE00149001001C890300033FA0000488A3000088C300BC
+S21902D1C30188E300023C800003388438D8387DAE744BFFD7055A
+S21902D1D8387DAE748001001C7C0803A683A1000C83C100108393
+S21902D1EDE10014382100184E800020812300007C0918004182CE
+S21902D20200208123000490890000800300049064000090040020
+S21902D21704908300044E80002090890004908900009124000007
+S21902D22C912400044E8000207C6B1B78806B00007C03580041C2
+S21902D24182001880030000900B000081230000916900044E80A9
+S21902D2560020386000004E8000209421FFE87C0802A693A1001A
+S21902D26B0C93C1001093E100149001001C3D0000033CE00003A3
+S21902D280392848183967481091284818916748103D400004915E
+S21902D2952900043BCAAE94916B00043FA000033BE000107FC4B9
+S21902D2AAF378387D48104BFFFF4937FFFFFF3BDE06104082FF3A
+S21902D2BFEC8001001C7C0803A683A1000C83C1001083E10014A1
+S21902D2D4382100184E8000209421FFF87C0802A69001000C80EA
+S21902D2E9040000A124000490030010B123001480040000A104A8
+S21902D2FE00043D20000339694828900948283D400003B10B0059
+S21902D31304906A4834480000158001000C7C0803A6382100080C
+S21902D3284E8000209421FFF87C0802A69001000C8123000038AA
+S21902D33D8300108009000038A000007C0803A64E800021800143
+S21902D352000C7C0803A6382100084E8000209421FF587C0802A5
+S21902D367A67D80002693410090936100949381009893A1009C79
+S21902D37C93C100A093E100A4900100AC9181008C3D2000003918
+S21902D39129320083A9004C3D6000032C1D00007C7B1B787C9A24
+S21902D3A623787CBC2B7883EB48343BC00005418200547FBFEBCB
+S21902D3BB78815F0000801F000C816A00243D2000032C000000B8
+S21902D3D03929433C916A0028912A00244082002C800A00003CAA
+S21902D3E5800003388448287FE3FB7838A000007C0803A64E80D5
+S21902D3FA0021801F000C60000001901F000C2E1D00004800009C
+S21902D40F3C813F00007FE3FB788009001C7C0803A64E8000216F
+S21902D4243D20000039293200800900483C60000360630D407CFF
+S21902D4390803A64E80002137DEFFFF408100E4813F00007FE35D
+S21902D44EFB788009000C7C0803A64E8000212C0300004182FFAD
+S21902D463B0813F00003D6000038149001038A0000238EB48205E
+S21902D4789361000893410010938100147FE3FB783881000838C2
+S21902D48DDC000E7D4803A63800000E392000009001000C912B33
+S21902D4A248204E8000213D200003800948303FC000032C000088
+S21902D4B700418200384BFFF6117C7D1B783C600003386338E42B
+S21902D4CC4BFFD4957F63DB783880000E4BFFDF617F43D3787F80
+S21902D4E184E3784BFFDF557FA3EB784BFFF64D801E48202C008E
+S21902D4F60000408200307FFDFB787FDFF378813D00007FA3EBA5
+S21902D50B788009001C7C0803A64E800021801F48202C00000098
+S21902D5204182FFE47FBFEB7841920018813F0000380000008144
+S21902D5356900289009002891690024800100AC8181008C7C082B
+S21902D54A03A683410090836100948381009883A1009C83C100B0
+S21902D55FA083E100A47D808120382100A84E8000209421FFF8CF
+S21902D5747C0802A69001000C3D200003380948207C0400004009
+S21902D589820010380000019009482048000018812300008169CC
+S21902D59E0028800B00087C0803A64E8000218001000C7C080386
+S21902D5B3A6382100084E8000209421FFE07C0802A69361000CA7
+S21902D5C89381001093A1001493C1001893E1001C900100243DED
+S21902D5DD200000392932008389004C3D6000032C1C00007C7D45
+S21902D5F21B787C9B237883CB4834418200547F9EE378815E00A0
+S21902D60700801E000C816A00243D2000032C0000003929433CE1
+S21902D61C916A0028912A00244082002C800A00003C8000033881
+S21902D6318448287FC3F37838A000007C0803A64E800021801EAA
+S21902D646000C60000001901E000C813E00007FC3F378800900AC
+S21902D65B1C7C0803A64E8000213C600003386348184BFFFBC9D3
+S21902D6707C7F1B7941820054393F000CA009000C817F000C8132
+S21902D68549000481090008B01D000C917D0000915D0004911D23
+S21902D69A000880BF00087F63DB7838A5FFF2389F001A4BFFCA1D
+S21902D6AFB13C600003386348107FE4FB784BFFFB3D807F0008BD
+S21902D6C448000008386000002C1C000041820018813E00003848
+S21902D6D9000000816900289009002891690024800100247C081B
+S21902D6EE03A68361000C8381001083A1001483C1001883E1007B
+S21902D7031C382100204E8000209421FFE87C0802A693A1000C7F
+S21902D71893C1001093E100149001001C7CA02B797C0903A6402E
+S21902D72D81003C7C9F23787FC902A63FA00003807F000080BF5D
+S21902D7420004809D48244BFFCA15801D4824813F000437DEFF34
+S21902D757FF7C004A143BFF0008901D48244082FFD88001001C4C
+S21902D76C7C0803A683A1000C83C1001083E10014382100184EB9
+S21902D7818000209421FF607C0802A69361008C9381009093A154
+S21902D796009493C1009893E1009C900100A47C7E1B783C600089
+S21902D7AB037C9B2378386348104BFFFA817C7C1B787F89FE70F4
+S21902D7C07D20E2787C004850817E00007C00FE70393C000C7D5B
+S21902D7D53F0038800B001493E100089361000C7FC3F378388140
+S21902D7EA000838A000017C0803A64E8000213D200003800948F5
+S21902D7FF302C000000418200384BFFF2C57C7D1B783C6000038B
+S21902D814386338F44BFFD1497FE3FB783880000E4BFFDC1538BF
+S21902D8297F000E389BFFF24BFFDC097FA3EB784BFFF301813EE1
+S21902D83E0000800900282C0000004182005C3C60000338634553
+S21902D85360389F001E38A000044BFFD3752C03000041820040C4
+S21902D868815E00007FC3F378812A00287F64DB78800900043D45
+S21902D87D6000037C0803A683AA0014396BD70C3D20000393E95B
+S21902D8924824916A00144E800021813E000093A900142C1C00B9
+S21902D8A700418200183C600003937C0008386348187F84E3787B
+S21902D8BC4BFFF93D800100A47C0803A68361008C8381009083F7
+S21902D8D1A1009483C1009883E1009C382100A04E80002094218E
+S21902D8E6FFF87C0802A69001000C3D20000380694834816300BD
+S21902D8FB00800B00207C0803A64E8000218001000C7C0803A690
+S21902D910382100084E8000209421FFF87C0802A69001000C7CBB
+S21902D925641B783C600003386339044BFFD0318001000C7C081C
+S21902D93A03A6382100084E8000209421FFF07C0802A693E10095
+S21902D94F0C900100143D2000043BE9315C801F001C2C00000012
+S21902D9644082002C9069315C909F00044800049D7C631B794064
+S21902D97982001C801F0008392000017C0000D0913F001C901F0C
+S21902D98E001038600000800100147C0803A683E1000C3821004A
+S21902D9A3104E8000203D2000043929315C8009001C7C6B1B78FB
+S21902D9B82C0000004082000C386000074E800020800900147CB3
+S21902D9CD0B00404180001480090018386000007C0B00404D8051
+S21902D9E20020386000014E8000203D2000043969315C800B0067
+S21902D9F71C2C0000004182001C812B00143860000091240000E0
+S21902DA0C800B0018900500004E800020386000074E8000203D0E
+S21902DA212000043969315C800B001C7C6A1B782C000000418287
+S21902DA36001C812B000838600000912A0000800B000C90040086
+S21902DA4B004E800020386000074E8000209421FFD87C0802A68C
+S21902DA609321000C93410010936100149381001893A1001C93EF
+S21902DA75C1002093E100249001002C3D200004800931787C7FD1
+S21902DA8A1B782C0000007C9E23787CBA2B783B800000408200B6
+S21902DA9F0C38600007480000F83D20000483A9315C3C800003A7
+S21902DAB43CA000033884DF9C38A5E0C47CA428507FA3EB784B57
+S21902DAC9FFC6957CBFF214380000807C0903A6392000006120E6
+S21902DADE10003D600E007C0004AC7D398BA67D788BA67C198B18
+S21902DAF3A67D788BA6392900104200FFE03C0004004C00012CFF
+S21902DB087C108BA64C00012C3D2000043929315C800900107C66
+S21902DB1DBE2B783C6000037FFF00383F2000037D3B4B783863BE
+S21902DB3239407FE4FB784BFFCE294800001C801B000838793956
+S21902DB47585400F87E7C0002147FFF02144BFFCE0D7C1FF0408A
+S21902DB5C408000207FE3FB787FA803A64E800021480003657C0D
+S21902DB717C1B794182FFCC93FA00003C0002004C00012C7C102A
+S21902DB868BA64C00012C3C6000033863395C4BFFCDCD7F83E341
+S21902DB9B788001002C7C0803A68321000C8341001083610014A0
+S21902DBB08381001883A1001C83C1002083E10024382100284E42
+S21902DBC58000209421FFD07C0802A692E1000C9301001093211D
+S21902DBDA0014934100189361001C9381002093A1002493C1003F
+S21902DBEF2893E1002C900100343D600004392B315C8009001C56
+S21902DC047CBE2B782C0000007CD833787C7C1B787C9D23783B82
+S21902DC194000004082000C386000074800011C836B315C3C80A6
+S21902DC2E00033CA000033884E0C438A5E2087CA428507F63DB7C
+S21902DC43784BFFC5197CBDF214380000807C0903A639200000A7
+S21902DC58612010003D600E007C0004AC7D398BA67D788BA67CBF
+S21902DC6D198BA67D788BA6392900104200FFE03C0004004C000C
+S21902DC82012C7C108BA64C00012C3C600003386339607FA4EB42
+S21902DC97787F86E3784BFFCCC53D2000043EE000033B29315C4B
+S21902DCAC48000020387739584BFFCCAD57E0F87E7C0002147F33
+S21902DCC1BD02147FDFF0507F9C02142C1E0000408100508019B1
+S21902DCD600087FC5F3787F8500007F83E3787FA4EB784FFEE364
+S21902DCEB827D200026552907FE7D2900D07C0048787CA94838FE
+S21902DD007D2503787F6803A67CBF2B784E800021480001C17C07
+S21902DD157A1B794182FF98939800003C0002004C00012C7C101C
+S21902DD2A8BA64C00012C3C6000033863395C4BFFCC297F43D390
+S21902DD3F78800100347C0803A682E1000C8301001083210014B3
+S21902DD54834100188361001C8381002083A1002483C10028837C
+S21902DD69E1002C382100304E80002028030007418100883D6001
+S21902DD7E0003396B3A705460103A7D4B002E3D20000339293A48
+S21902DD93707D4A4A147D4903A64E8004203C600003386339808B
+S21902DDA84E8000203C600003386339A04E8000203C6000033899
+S21902DDBD6339B84E8000203C600003386339D04E8000203C603B
+S21902DDD20003386339EC4E8000203C60000338633A044E80003E
+S21902DDE7203C60000338633A144E8000203C60000338633A38DE
+S21902DDFC4E8000203C60000338633A5C4E8000209421FFE07C4F
+S21902DE110802A693A1001493C1001893E1001C900100243D20EF
+S21902DE26000483E9315C3C8000033CA000033884E20838A5E2E0
+S21902DE3BA47CA428507FE3FB784BFFC3193FC000013BA00008B1
+S21902DE5038610008380000807C0903A639200000612010003D08
+S21902DE65600E007C0004AC7D398BA67D788BA67C198BA67D783F
+S21902DE7A8BA6392900104200FFE07FE803A64E8000217D3DF11E
+S21902DE8FD63D600004396B315C3D29FE003C00FE00912B00185D
+S21902DEA4900B001493CB000893AB000C38600000800100247C4A
+S21902DEB90803A683A1001483C1001883E1001C382100204E8041
+S21902DECE00209421FFF07C0802A693E1000C900100143C0000E7
+S21902DEE37E7C7F1B786000007E7FE90039418200503C600003E6
+S21902DEF838633A907FE4FB784BFFCA613C000010600000107F23
+S21902DF0DE9003938600004408200303C600020606300207FE347
+S21902DF2218387C6300D07C63FE707C6018F8546307BC540007D6
+S21902DF37387C6303784800000838600000800100147C0803A692
+S21902DF4C83E1000C382100104E8000203D200002392920007C95
+S21902DF610348407C802378396000004181000C7C004840418155
+S21902DF76001C3D2000033889176C7C032040418100107C002082
+S21902DF8B4040810008396000017D635B784E8000207C6A1B78BD
+S21902DFA07CF88AA654E70FFE2C07000041820040380000807C0F
+S21902DFB50903A639200000612010003D600E007C0004AC7D3927
+S21902DFCA8BA67D788BA67C198BA67D788BA6392900104200FF45
+S21902DFDFE03C0004007C0004AC7C188BA655480010396000AA25
+S21902DFF49968055539200055992802AA38000080980805559950
+S21902E009680555992802AA392000327D2903A62F870000380004
+S21902E01E0030980A0000396A0001420000003D20004C7D2903DC
+S21902E033A6880A00005400067261294B407D2903A65400063ED1
+S21902E048886A0000546906727C09000041820014706000207DCC
+S21902E05D204B78408200084200FFE4380000FF98080000892A4B
+S21902E07200007D6A5B782C0900FF3D2000014082001C3529FF0B
+S21902E087FF40810014880A0000394A00012C0000FF4182FFECBA
+S21902E09C7D2BFE707D604A787C0058507C00FE707C6300384D41
+S21902E0B19E00203C0002007C0004AC7C188BA64E8000209421C3
+S21902E0C6FFF093C1000893E1000C7D588AA6554A0FFE2C0A008C
+S21902E0DB0041820040380000807C0903A6392000006120100056
+S21902E0F03D000E007C0004AC7D398BA67D188BA67C198BA67DAD
+S21902E105188BA6392900104200FFE03D2004007C0004AC7D38E0
+S21902E11A8BA62C0500002F8A0000546A0010408100A03BC000A4
+S21902E12FAA3BE00055398000A038C000FF9BCA05559BEA02AA7A
+S21902E144998A0555880400003920003198030000380000327CAB
+S21902E1590903A63904000138E300013929FFFF4200FFFC880376
+S21902E16E00007D2903A6540006725400063E8963000055690632
+S21902E183727C09000041820014716000207D204B784082000897
+S21902E1984200FFE498CA000089230000880400007D0443787CF4
+S21902E1AD0900007CE33B784182000C396000FF4800000C34A5A7
+S21902E1C2FFFF4181FF787CA8FE707D002A787C0040507C00FED3
+S21902E1D770392000FF992A00007D6B0038419E00103D20020033
+S21902E1EC7C0004AC7D388BA67D635B7883C1000883E1000C385E
+S21902E2012100104E8000207D588AA6554A0FFE2C0A0000418238
+S21902E2160040380000807C0903A639200000612010003D600E31
+S21902E22B007C0004AC7D398BA67D788BA67C198BA67D788BA6B2
+S21902E240392900104200FFE03C0004007C0004AC7C188BA63DC1
+S21902E25560FE00380000AA980B055539200055992B02AA38001A
+S21902E26A0090980B0555892B00002C0A000099230000880B00D2
+S21902E27F01392000FF98030001992B0000418200103D60020058
+S21902E2947C0004AC7D788BA6386000004E8000209421FF687CFE
+S21902E2A90802A693410080936100849381008893A1008C93C12D
+S21902E2BE009093E100949001009C3FA000003BBD320090610085
+S21902E2D308819D00347C7A1B783860FFFF7D8803A63B81000844
+S21902E2E83B6100A03800000139600000938100789081000C90D3
+S21902E2FDA1001090C1001490E100189101001C91210020914114
+S21902E31200249801007099610071936100744E800021813D0042
+S21902E327347C7C1B78386000017D2803A64E800021388100701C
+S21902E33C7F43D3784BFFC6A9801D00347F83E3787C0803A64E56
+S21902E3518000218001009C7C0803A68341008083610084838115
+S21902E366008883A1008C83C1009083E10094382100984E8000D8
+S21902E37B209421FFE07C0802A6934100089361000C93810010A6
+S21902E39093A1001493C1001893E1001C900100243FA000003B5E
+S21902E3A5BD3200813D00347C7A1B783860FFFF7D2803A67C9CF6
+S21902E3BA23784E800021813D00347C7B1B78386000017D280300
+S21902E3CFA64E8000217F84E3787F43D3784BFFD05D801D0034EA
+S21902E3E47F63DB787C0803A64E800021800100247C0803A68377
+S21902E3F94100088361000C8381001083A1001483C1001883E1C3
+S21902E40E001C382100204E8000209421FFE87C0802A693E10033
+S21902E423149001001C3FE00004813F0F943881000880690000EC
+S21902E4388009001C7C0803A64E8000212C0300004082FFE480B3
+S21902E44D01001C7C0803A683E10014382100184E8000209421DD
+S21902E462FFE07C0802A69381001093A1001493C1001893E10047
+S21902E4771C900100243BE000003FA00004813D0F943881000898
+S21902E48C806900008009001C7C0803A64E8000212C030000415A
+S21902E4A18202A4896100082C0B000441820040408100102C0BFF
+S21902E4B600184182002C480000382C0B000241810030392BFF35
+S21902E4CBFF7D694B787D29FE70380900017FE948387D3F037818
+S21902E4E0480000143860FFFB480002683860FFFC480002602C17
+S21902E4F51F00004182FF8C3D20000481690F943BC90F94806B1E
+S21902E50A0000800B001C389E04087C0803A64E8000212C030021
+S21902E51F0041820224813D0F94389E0409806900008009001C25
+S21902E5347C0803A64E8000212C03000041820204880100083BEB
+S21902E549E00000680000017C0000D07C00FE707C0900F855293C
+S21902E55E06305400056A7C004B787C1F0000393E0004901E04A1
+S21902E57310913E0404408000487FDCF3787D3D4B783FC0000457
+S21902E588813E0F9438810008806900008009001C7C0803A64E4B
+S21902E59D8000212C030000418201A0880100087C1DF9AE813CA0
+S21902E5B204103BFF00017C1F48004180FFCC3FC00004813E0FBE
+S21902E5C7943BFE0F94806900008009001C389F040A7C0803A628
+S21902E5DC4E8000212C03000041820160801F04142C00000041BD
+S21902E5F1820024813E0F94389F040B806900008009001C7C080E
+S21902E60603A64E8000212C030000418201343D2000043BC90FC5
+S21902E61B94889E040888BE04097C862A782C0600FF418200280A
+S21902E6303C60000338633AA04BFFFC6D809E0410387E00044BD0
+S21902E645FFFD394BFFFDD13860FFFA48000100801E04142C00B0
+S21902E65A000041820088801E041038C000007C0600003BE00012
+S21902E66F00408000403D2000037FEBFB7839094348387E0004CB
+S21902E6847C0A03787D2358AE54C0C23E7C004A787C00021439B6
+S21902E6996B00017D28022E7C0B500054C0442E7C064A784180C2
+S21902E6AEFFDC3D20000439290F948889040A88A9040B5480409C
+S21902E6C32E7C002B787C060000418200803C60000338633AC0F5
+S21902E6D84BFFFBCD3860FFF948000070801E041038C000007CA6
+S21902E6ED0600003BE00000408000287FEBFB78387E00047C0AEB
+S21902E70203787C0358AE396B00017C0B50007C06021454060489
+S21902E7173E4180FFEC3D2000048889139E54C5063E7C042800D4
+S21902E72C418200203C60000338633AEC4BFFFB6D3860FFF94804
+S21902E7410000103860FFFD4800000838600000800100247C0807
+S21902E75603A68381001083A1001483C1001883E1001C3821007D
+S21902E76B204E8000209421FFD87C0802A6930100089321000C70
+S21902E78093410010936100149381001893A1001C93C10020930E
+S21902E795E100249001002C2C0400037CBE2B7840820044380058
+S21902E7AAFFFE901E0000480001103FA00004813D0F9438800053
+S21902E7BF06806900008009000C3BBD0F947C0803A64E80002103
+S21902E7D438000001939D0410981D040C38600000480000E03FE8
+S21902E7E9A000003BBD3200813D00343860FFFF7D2803A63F80B5
+S21902E7FE00043B5C0F947FB8EB784E800021813D00347C7B1B34
+S21902E813787D2803A63BE000133F2000044E800021801D0014F2
+S21902E828813D00347F63DB787D2803A6901C0F944E80002181A0
+S21902E83D3C0F9438800007806900008009001438A003E87C0854
+S21902E85203A64E8000213920000038000001913A0418901A04EB
+S21902E86714913A04104BFFFBF57C7C1B794182FF402C1CFFFD96
+S21902E87C40820030813800483C6000076063A1207D2803A64ECA
+S21902E89180002181390F9438800043806900008009000C7C0870
+S21902E8A603A64E8000217FE0FB782C0000003BFFFFFF4181FFC7
+S21902E8BBB4939E00003860FFFF8001002C7C0803A68301000860
+S21902E8D08321000C83410010836100148381001883A1001C83D1
+S21902E8E5C1002083E10024382100284E8000209421FFD07C0837
+S21902E8FA02A692E1000C9301001093210014934100189361008F
+S21902E90F1C9381002093A1002493C1002893E1002C9001003463
+S21902E9243D2000047C9B237839690F94812B04187F60FE707CEE
+S21902E9391B005054000FFE210900007D2849147D2A00397C7AF4
+S21902E94E1B787CB72B783B0000003F200004418201787D7C5B16
+S21902E96378801C04102C000000408200F03BC000134BFFFAED53
+S21902E9787C7F1B794082004C3D4000043BAA0F94897D04088942
+S21902E98D3D040C7C0B4800418200A03809FFFF5400063E7C0B91
+S21902E9A2000040820020812A0F943880000680690000800900F9
+S21902E9B70C7C0803A64E800021480000283BE0FFF82C1FFFFC54
+S21902E9CC4182004481390F9438800043806900008009000C7CD6
+S21902E9E10803A64E8000217FC0F3782C0000003BDEFFFF4181CB
+S21902E9F6FF802C1F00004080006093F700003800FFFF901C04AB
+S21902EA0B10480000C881390F9438800006806900008009000C36
+S21902EA207C0803A64E80002138000001901C04184BFFFFC8812B
+S21902EA35390F9438800006806900008009000C7C0803A64E80B2
+S21902EA4A0021893D040C39290001993D040C4BFFFFA083BC0444
+S21902EA5F10809C04047F9BE8007F43D3784FFEEB827C000026FC
+S21902EA74540007FE7C0000D07F6900787FBD00387FBD4B787F8F
+S21902EA89A5EB784BFFB6D17F7DD850815C04187F60FE707C1B97
+S21902EA9E0050813C0410817C040454000FFE210A00007D485194
+S21902EAB3147D4800397D6BEA147D3D4850913C0410917C040407
+S21902EAC87F5AEA147F18EA144082FE947F03C378800100347C84
+S21902EADD0803A682E1000C8301001083210014834100188361F1
+S21902EAF2001C8381002083A1002483C1002883E1002C3821002B
+S21902EB07304E8000203803000828000007418100883D60000378
+S21902EB1C396B3BC05400103A7D4B002E3D20000339293BC07D70
+S21902EB314A4A147D4903A64E8004203C60000338633B184E8064
+S21902EB4600203C60000338633B2C4E8000203C60000338633B8F
+S21902EB5B4C4E8000203C60000338633B584E8000203C6000030A
+S21902EB7038633B644E8000203C60000338633B704E8000203C52
+S21902EB8560000338633B804E8000203C60000338633B944E80F6
+S21902EB9A00203C60000338633BAC4E8000209421FFF87C0802FE
+S21902EBAFA69001000C3803FFFE2800001D418100A03D60000388
+S21902EBC4396B3BE05400103A7D4B002E3D20000339293BE07D88
+S21902EBD94A4A147D4903A64E8004203860000248000078386025
+S21902EBEE00414BFF9B8954637F3E2C0300024182004028030089
+S21902EC0302418100102C030001418200384800004C2C0300042F
+S21902EC18418200242C0300084082003C3860000848000038386C
+S21902EC2D60000E480000303860000C48000028386000044800ED
+S21902EC42002038600005480000183860000A4800001038600007
+S21902EC570B480000083860000F8001000C7C0803A63821000884
+S21902EC6C4E8000203D200003816947D4806B00985463C23E4EB1
+S21902EC818000209421FFF87C0802A69001000C7C641B78386057
+S21902EC9600404BFF9AF58001000C7C0803A6382100084E800060
+S21902ECAB209421FFF87C0802A69001000C386000414BFF9ABD3E
+S21902ECC060640600548004203D2000035484045E90094548387E
+S21902ECD56000414BFF9AB58001000C7C0803A6382100084E8000
+S21902ECEA00209421FFF87C0802A69001000C386000414BFF9ABC
+S21902ECFF7D3D20000380894548546305E8380000007C6423782F
+S21902ED1490094548386000414BFF9A718001000C7C0803A6389D
+S21902ED292100084E8000204E8000204E8000209421FFF87C08AB
+S21902ED3E02A69001000C386000404BFF9A313D20000339299035
+S21902ED53807C634A78200300007C6019148001000C7C0803A69D
+S21902ED68382100084E8000209421FFF87C0802A69001000C3893
+S21902ED7D6000404BFF99F938830004386000404BFF9A01800101
+S21902ED92000C7C0803A6382100084E8000209421FFF87C0802AB
+S21902EDA7A69001000C3D2000038009454C2C0000004082001095
+S21902EDBC380000019009454C480008118001000C7C0803A63885
+S21902EDD12100084E8000203D200003800945502C0000004C8297
+S21902EDE6002038000001900945507D1E9AA67508FFFF3D2000D7
+S21902EDFB017D2903A638008001B00809C07C0902A6600086A0BF
+S21902EE107C0903A64200000080080ABC3D600001600000C090DA
+S21902EE25080ABC81280AB8616B00A2552906AE91280AB8916884
+S21902EE3A09F07CE902A690E80AE038002800B0083E8039683E9F
+S21902EE4F8038002808B00B000239200091B12809C039400001FC
+S21902EE649148003038000018980B0004980B0005B14B0006B038
+S21902EE79EB0028B0EB002CB0EB002EB14B003039282800B0E98C
+S21902EE8E00023800B000B00828003808281090090004396828C0
+S21902EEA30838082820B14B0002900B000439202000B1282808A4
+S21902EEB8380000FF98080A863920000599280A8A38004820B0D4
+S21902EECD080A8239204823B1280A824E80002039233E80A009BB
+S21902EEE200207D4302147D4B5378A00A00007008800041820026
+S21902EEF728A00A00007008200041820010A00900027D43021441
+S21902EF0C48000008394A00087C0A58004082FFD47D495378A06A
+S21902EF21090000700080004082FFF87D2A4B787C090378A00A0E
+S21902EF360000700B100041820014A00A00007000EFFFB00A009B
+S21902EF4B00B12A0002A12A00023900000038090001B00A0002C9
+S21902EF60816A00045529043E7C8B49AEA00A000060008000B0AE
+S21902EF750A0000A12A000071208000418200647D4B53787D0A59
+S21902EF8A43783D0000076108FFFF394A00017C0A4000408200F9
+S21902EF9F38A1230A82394000007129FFFDB1230A82A00B0000B4
+S21902EFB45400047EB00B0000A1230A8261290002B1230A82A0D4
+S21902EFC90B000060008000B00B0000A00B000070098000408220
+S21902EFDEFFB87D6A5B787D495378A0090000700080004082FFBB
+S21902EFF3F87D2A4B78B00A00024E80002038E33E80A107001065
+S21902F0087C03422E7D434214700680004182000C386000004E3C
+S21902F01D800020812A0004396000008809000098040000B0CA48
+S21902F0320002812A0004996900007C03422E600080007C03437E
+S21902F0472E7D388AA655290FFE2C09000041820028812A000440
+S21902F05CA00700062C000000408100187C004BAC7C0004AC3413
+S21902F07100FFF0392900104181FFF0386000014E800020942135
+S21902F086FFE87C0802A693E100149001001C7C7F1B787FE3FB3B
+S21902F09B78388100084BFFFF612C0300004182FFF088610008A4
+S21902F0B08001001C7C0803A683E10014382100184E800020940F
+S21902F0C521FFE87C0802A693A1000C93C1001093E1001490013E
+S21902F0DA001C7CBF2B787FE0FB782C0000007C7D1B787C9E2359
+S21902F0EF783BFFFFFF41820024889E00007FA3EB784BFFFDDD9F
+S21902F1047FE0FB782C0000003BDE00013BFFFFFF4082FFE4807A
+S21902F11901001C7C0803A683A1000C83C1001083E1001438213B
+S21902F12E00184E8000209421FFE87C0802A693A1000C93C10063
+S21902F1431093E100149001001C7CBF2B787FE0FB782C0000008F
+S21902F1587C7D1B787C9E23783BFFFFFF418200247FA3EB784B6B
+S21902F16DFFFF197FE0FB782C000000987E00003BDE00013BFF07
+S21902F182FFFF4082FFE48001001C7C0803A683A1000C83C10090
+S21902F1971083E10014382100184E8000209421FFE87C0802A6AD
+S21902F1AC9381000893A1000C93C1001093E100149001001C3D15
+S21902F1C1200003800945543D6000001FE0000A3B8B32007C7D56
+S21902F1D61B787C9E237848000014813C0048386000647D2803D0
+S21902F1EBA64E8000217FA3EB787FC4F3784BFFFE097C631B797C
+S21902F200408200102C1F00003BFFFFFF4082FFD48001001C7CEF
+S21902F2150803A68381000883A1000C83C1001083E100143821CB
+S21902F22A00184E8000209421FF807C8023782C00000590A10095
+S21902F23F1090C1001490E100189101001C91210020914100243F
+S21902F2549081000C386000004182002C28000005418100102CCF
+S21902F26900000441820144480002B42C000006418202782C00E4
+S21902F27E000741820278480002A03D600003800B3D2C3D200055
+S21902F2930339293C587D2902147D2903A64E8004203D20FF000D
+S21902F2A861290014800900007C0006AC60000400900900007C7C
+S21902F2BD0006AC480000E03D20FF0061290200A00900007C004E
+S21902F2D206AC60000008B00900007C0006AC480000C03D20FFBB
+S21902F2E70061290200A00900007C0006AC60000004B00900008B
+S21902F2FC7C0006AC480000A03D20FF0061290240A00900007C93
+S21902F3110006AC60000004B00900007C0006AC480000803D20BE
+S21902F326FF0061290220A00900007C0006AC60000008B0090028
+S21902F33B007C0006AC480000603D20FF0061290220A00900002F
+S21902F3507C0006AC60000004B00900007C0006AC480000403D63
+S21902F36520FF0061290940800900007C0006AC6000008090096A
+S21902F37A00007C0006AC480000203D20FF006129094880090021
+S21902F38F007C0006AC60000010900900007C0006AC3D2000039D
+S21902F3A43800000190094558480001783D2000038069455838FF
+S21902F3B9000000900945583D600003800B3E143D2000033929C3
+S21902F3CE3D407D2902147D2903A64E8004203D20FF00612900C3
+S21902F3E314800900007C0006AC540005A8900900007C0006AC7B
+S21902F3F84800012C3D20FF0061290200A00900007C0006AC7055
+S21902F40D00FFF75400043EB00900007C0006AC480001083D20C2
+S21902F422FF0061290200A00900007C0006AC7000FFFB540004AA
+S21902F4373EB00900007C0006AC480000E43D20FF006129024040
+S21902F44CA00900007C0006AC7000FFFB5400043EB00900007C98
+S21902F4610006AC480000C03D20FF0061290220A00900007C00A8
+S21902F47606AC7000FFF75400043EB00900007C0006AC4800009D
+S21902F48B9C3D20FF0061290220A00900007C0006AC7000FFFB80
+S21902F4A05400043EB00900007C0006AC480000783D20FF006156
+S21902F4B5290940800900007C0006AC5400066E900900007C0035
+S21902F4CA06AC480000583D20FF0061290948800900007C000692
+S21902F4DFAC54000734900900007C0006AC4800003838600036C1
+S21902F4F4480000303961000838010088392000039861007199C2
+S21902F50921007090010074916100783D200003800B000880690A
+S21902F51E455490094554382100804E8000209421FFE87C08021D
+S21902F533A693C1001093E100149001001C7C9E2378392000006F
+S21902F5487C7F1B78913E0000881F0A86700B000141820060383C
+S21902F55D000001981F0A86A13F2800391F2800712080004082EF
+S21902F572003C8128000439400001880900003960B000980100A7
+S21902F58708B1480002B17F280038610008388000014BFFAAA51A
+S21902F59C2C0300004182000C38000001901E0000380000109096
+S21902F5B11F094C392000017D234B788001001C7C0803A683C1FF
+S21902F5C6001083E10014382100184E8000209421FFF07C080218
+S21902F5DBA693C1000893E1000C900100143D2000003BE932003A
+S21902F5F0813F00343860FFFF7D2803A64E8000217C7E1B787C2F
+S21902F6051E9AA67400FFFF3D2000038009455C2C0000004082A1
+S21902F61A0094380000019009455C4BFFF7B5813F00343860004B
+S21902F62F007D2803A64E800021815F00147C1E9AA67400FFFF42
+S21902F6443D200003900A00003929F0C4912A00043D6000033902
+S21902F6596BF1343D200003916A00083929EEDC912A000C3D6012
+S21902F66E0003396BF0843D200003916A00103929F230912A00BB
+S21902F683143D600003396BF52C3D200003916A00183929F1A488
+S21902F698912A001C801F00347FC3F3787C0803A64E8000218063
+S21902F6AD0100147C0803A683C1000883E1000C382100104E800C
+S21902F6C200209421FFF07C0802A693E1000C900100143D2000BA
+S21902F6D703806948387C9F23782C030000418200084BFFAA7592
+S21902F6EC881F00002C0000024082002C3C80000338844828381C
+S21902F7017F001C38A000064BFFB4C92C03000040820010801F0C
+S21902F71600103D20000390094560800100147C0803A683E10003
+S21902F72B0C382100104E8000209421FE887C0802A69321015CE7
+S21902F74093410160936101649381016893A1016C93C1017093A9
+S21902F755E101749001017C3D20000390694838386100187C79B5
+S21902F76A1B783880000038A0012C4BFFAAC13D200003808948CD
+S21902F77F2839694828A06B00043D201234394000003CE00003EA
+S21902F79438C0000161295555396000063907456098C10019999D
+S21902F7A961001A9121001C9947456099480003380000FF90814A
+S21902F7BE0034B06100389801015198C100189948000199480093
+S21902F7D3023CA000037D1D437838A5F6C4980101489801014988
+S21902F7E89801014A9801014B9801014C9801014D9801014E98EF
+S21902F7FD01014F980101503861000838800044480000D53B8040
+S21902F81200023B4101483F60000348001F0D7C7E1B787F23CB03
+S21902F827783880012C7F45D37838C0004338E00044480002492F
+S21902F83C48000AA1881B45602C00000040820028881D00012C8D
+S21902F8510000004082001C881D00022C000000408200108BFD90
+S21902F86600032C1F00004182001438600044480000BD386000E8
+S21902F87B004800003848001EA97C7E1850280307CF4081FFB00F
+S21902F8907F80E3782C0000003B9CFFFF4181FF8038600044489C
+S21902F8A500008D3D20000393E948303860FFFF8001017C7C084E
+S21902F8BA03A68321015C83410160836101648381016883A10188
+S21902F8CF6C83C1017083E10174382101784E8000203D20000303
+S21902F8E48129483C2C09000041820024A00900047C0020004035
+S21902F8F982000C3860FFFF4E800020812900002C090000408240
+S21902F90EFFE43D2000038009483C9069483CB083000490A300A6
+S21902F9230890030000386000004E8000203D2000038129483C19
+S21902F938396000002C0900004D8200207D2A4B78A00900047C63
+S21902F94D0018004082001C2C0B00004182001080090000900B7A
+S21902F962000048000008814900007D2B4B78812900002C090025
+S21902F977004082FFD03D2000039149483C4E8000209421FFE89B
+S21902F98C7C0802A69381000893A1000C93C1001093E10014905B
+S21902F9A101001C7C7E1B7883FE000838000000A13F0006600099
+S21902F9B6FFFF7C090000817E00047C9C23784082000C380000F6
+S21902F9CB00B01F0006A01F00047D635B78B00B0002A3BF0004B2
+S21902F9E0480008CD7C651B787FA4EB787FE3FB78480008512C52
+S21902F9F5030000408200603D2000038169483C2C0B0000418209
+S21902FA0A0050A12B0004A01F00027C09000040820034A0BF0025
+S21902FA1F04800B00087D635B7838A5FFF87F86E378A0FF0000AE
+S21902FA34389F00087C0803A64E8000217FC3F378480007D9489E
+S21902FA49000018816B00002C0B00004082FFB87FC3F3784800F8
+S21902FA5E07C18001001C7C0803A68381000883A1000C83C1007A
+S21902FA731083E10014382100184E8000209421FFD87C0802A6D8
+S21902FA88930100089321000C934100109361001493810018935B
+S21902FA9DA1001C93C1002093E100249001002C7C9C2378281CD0
+S21902FAB205C07C791B787CB82B787CDA33787CFE3B7841810024
+S21902FAC7A8386005EA480006ED7C7F1B794182009883BF000885
+S21902FADC381C0008837F0004B01F000CB3DD0000B35D0002A08F
+S21902FAF11F000C392000007F85E378B01D0004B13D00067F24AE
+S21902FB06CB78387D00084BFFA6513D200003800945603960007B
+S21902FB1B11901B000C81380000997B0009913B0010A01D000493
+S21902FB307F63DB78B01B0002A39F000C480007717C651B787FB6
+S21902FB4584E3787FA3EB78480006F5B07D00067F05C3787FE3A9
+S21902FB5AFB7838800011480004457FE3FB78480006B580010069
+S21902FB6F2C7C0803A6830100088321000C834100108361001419
+S21902FB848381001883A1001C83C1002083E10024382100284E4E
+S21902FB998000209421FFD87C0802A69381001893A1001C93C128
+S21902FBAE002093E100249001002C7CBF2B787C7D1B787C9C2321
+S21902FBC3787CDE33787FE3FB783881000848001A252C0300005D
+S21902FBD841800024A0DF0004A0FE00047FA3EB787F84E37838EC
+S21902FBEDA100084BFFFE91386000004800001C3C6000033C8023
+S21902FC02000338633E2838843E4C4BFFAD553860FFFF80010039
+S21902FC172C7C0803A68381001883A1001C83C1002083E1002430
+S21902FC2C382100284E8000209421FFE87C0802A69381000893D6
+S21902FC41A1000C93C1001093E100149001001C3F8000037CBF64
+S21902FC562B783D200003807C48407CDD33787CFE3B7893E94816
+S21902FC6B444BFFA4F13D200003816948482C0B00004182001C6A
+S21902FC80B3CB0004801D000039200000900B0000913C484048B8
+S21902FC950000143C60000338633E5C7FE4FB784BFFACBD800161
+S21902FCAA001C7C0803A68381000883A1000C83C1001083E10001
+S21902FCBF14382100184E8000209421FFD07C0802A6934100181A
+S21902FCD49361001C9381002093A1002493C1002893E1002C90CC
+S21902FCE9010034A3A600047CBA2B787C7E1B787C9C23783CA088
+S21902FCFE00037CFF3B7838A5FC34386100087FA4EB784BFFFB40
+S21902FD13D12C0300004080000C3860FFFF48000084813F0004E2
+S21902FD283C001062817F000060004DD37D2900161D6B03E8550D
+S21902FD3D29D1BE7F6B4A143D4000033D2000033D60000393CACD
+S21902FD52484093894844934B4848480019CD7FBAEB787C7E1B18
+S21902FD67783BE0FFFF3FA000033F800003480019B57C7E1850D3
+S21902FD7C7C03D8404080001848000559801D48402C00000040C5
+S21902FD9182FFE483FC48447F43D3784BFFFB957FE3FB788001A9
+S21902FDA600347C0803A6834100188361001C8381002083A100BC
+S21902FDBB2483C1002883E1002C382100304E8000209421FFF0F1
+S21902FDD07C0802A693E1000C900100147C691B78880900002C91
+S21902FDE50000FF4082002C880900012C0000FF408200208809E5
+S21902FDFA00022C0000FF4082001488090003386000012C000091
+S21902FE0FFF418200643FE000037D234B78389F456038A00004D4
+S21902FE244BFFADAD2C0300004082000C38600001480000408878
+S21902FE391F4560389F45602C0000004082002C880400012C009A
+S21902FE4E000040820020880400022C000000408200148804009A
+S21902FE6303386000012C000000418200083860000080010014C3
+S21902FE787C0803A683E1000C382100104E8000209421FFD87C72
+S21902FE8D0802A693A1001C93C1002093E100249001002C7C7E96
+S21902FEA21B7883FE00047C9D2378387F00104BFFFF1D2C03001C
+S21902FEB70041820020A09F00007FE3FB785484D6BA38A00000F8
+S21902FECC480003752C030000418200107FC3F3784800034148D7
+S21902FEE10000A8801F000C813D0000A17D000490010008912187
+S21902FEF6000CB1610010A13F0000A01F00025523D6BA7C03009A
+S21902FF0B50B01E000C881F00092C000006418200384181001001
+S21902FF202C00000141820014480000582C0000114182003848A1
+S21902FF3500004C7C1F1A14901E00087FC3F3783881000848002F
+S21902FF4A05054800003C7C1F1A14901E00087FC3F37838810028
+S21902FF5F0848000AE5480000247C1F1A14901E00087FC3F378AF
+S21902FF74388100084BFFFA114800000C7FC3F3784800029980F7
+S21902FF8901002C7C0803A683A1001C83C1002083E1002438217D
+S21902FF9E00284E8000209421FFE07C0802A69361000C9381005D
+S21902FFB31093A1001493C1001893E1001C900100247C7C1B789E
+S21902FFC883BC000480FC0008A13C000C7CFD38507D293A14B1C7
+S21902FFDD3C000CA01D000054E9352E5400053E600040007000BC
+S21902FFF2F0FF7C004B78B01D000039200000993D00013D00008B
+S21903000703A128484CA01C000CB13D0004B01D00023969000150
+S21903001CB168484C3940000038000040989D0009981D0008B17D
+S2190300315D000AB15D00063D200003800945607CBB2B78901D22
+S219030046000C813B00007CE43B78913D00107FA3EB7838A00087
+S21903005B00480001E5B07D000A7F83E378389B000438A008000F
+S21903007048000371800100247C0803A68361000C83810010835E
+S219030085A1001483C1001883E1001C382100204E8000203D0029
+S21903009A0003800845702C0000004C82002038000001900845D9
+S2190300AF70380000047C0903A63C8000033D2000043D60000499
+S2190300C48144485038A91400390B13B038C005EA38E000007D4A
+S2190300D9272A147120000239690002914800007C00002654009F
+S2190300EE1FFE7C0000D07D6B00787D2900387D295B789128001C
+S219030103107D0A4378B0C8000E390A001438E705EC4200FFC49B
+S219030118914448504E8000209421FFE87C0802A69381000893F8
+S21903012DA1000C93C1001093E100149001001C3D2000043BE9EA
+S21903014213B03BC000003F8000037FFDFB7880DF0010A0FF0023
+S2190301570EA11F000C813F00007FC4F3787FA5EB78387C3E8842
+S21903016C4BFFA7F53BDE00012C1E00033BFF00143BBD0014408F
+S21903018181FFD03D2000033C6000038089485038633EB44BFF9A
+S219030196A7CD8001001C7C0803A68381000883A1000C83C1008E
+S2190301AB1083E10014382100184E8000203CA0000380654850F4
+S2190301C02C0300004D8200203CE00003814745683D2000038090
+S2190301D509456C394A00017CC050503C80000381644564810322
+S2190301EA00108003000039280014900548507C06580091230035
+S2190301FF089103000438000000B003000C914745684C810020DA
+S21903021490C445644E8000203D400003812A45683D60000380EA
+S2190302290B48503929FFFF912A4568906B4850900300004E8059
+S21903023E00203484FFFE41800018A00300003484FFFE7CA5027A
+S21903025314386300024080FFF02C04FFFF4082001088030000A3
+S2190302685400402E7CA5021454AB043E54A9843E380000007CCC
+S21903027DA95A146000FFFF7C0500004081000C3D25FFFF38A960
+S21903029200017CA928F85523C63E5463402E5520063E7C031B15
+S2190302A7784E800020A123000EA003000CA16300107C004A1465
+S2190302BCA1430012892300097C005A147C005214A06300027C2D
+S2190302D1004A147C601A144E8000209421FFD87C0802A69381EE
+S2190302E6001893A1001C93C1002093E100249001002C3F80000B
+S2190302FB033FA000033FC00003386005EA4BFFFEB17C7F1B79F0
+S219030310408200183C60000338633EC44BFFA6454BFFFE0148F4
+S219030325000000809F00103861000838A005EA4BFFD2895460CB
+S21903033A043E2C000000B07F000C41820074A0010014813C450F
+S21903034F7C2C00080039290001913C457C418200182C000806DB
+S219030364418200347FE3FB784BFFFEB14BFFFF94813D457480E3
+S2190303791F001039290001913D4574901F00047FE3FB7838810D
+S21903038E000E4BFFFAF94BFFFF70813E4578801F0010392900C1
+S2190303A301913E4578901F00047FE3FB7848000F9D4BFFFF509B
+S2190303B87FE3FB784BFFFE618001002C7C0803A6838100188331
+S2190303CDA1001C83C1002083E10024382100284E800020942146
+S2190303E2FFE87C0802A69001001C80040000A144000490010040
+S2190303F708390100083D200003B148000439694828A14B000440
+S21903040CB0A1001480094828A0A3000C808300109001000EB1C3
+S2190304214100127D0343784BFFCF393D600003812B458039296B
+S2190304360001912B45808001001C7C0803A6382100184E80001E
+S21903044B209421FFF07C0802A693C1000893E1000C9001001423
+S2190304607C7F1B78807F00087C9E2378A00300002C000800401E
+S219030475820050A09F000C38A000004BFFFDC17C631B79408238
+S21903048A003C813F000838A0000098690000817F0008B06B0055
+S21903049F02807F0008A09F000C4BFFFD99813F00087FC5F37895
+S2190304B4B06900027FE3FB78388000014BFFFAE57FE3FB784B39
+S2190304C9FFFD55800100147C0803A683C1000883E1000C3821EE
+S2190304DE00104E8000209421FFD87C0802A69341001093610073
+S2190304F3149381001893A1001C93C1002093E100249001002C93
+S2190305087C9B23787C7E1B78736000023B9E002C83BC000483F7
+S21903051DFC00087CBA2B784182004438000018B01C000C813FF5
+S219030532000C396000065169E0063C000204913F000C600005DE
+S219030547B490010008387F00143881000838A000044BFF9C05F7
+S21903055C38000000B01E001648000020A13E0016396000053932
+S219030571290014B13C000C801F000C5160E006901F000C801F9B
+S219030586000C396000005160C10E901F000C813E00542C1A001F
+S21903059B00913F0004801E0050B17F0010901F00084082005474
+S2190305B0A01E0012B01F0000A13E00149B7F000DB13F0002A0E3
+S2190305C51E00162C0000004182000C63600008981F000D380023
+S2190305DA05B4B01F000EB35F00123D2000038009456039600023
+S2190305EF06901D000C813E0008997D0009913D0010A01C000CA4
+S2190306047FA3EB78B01D0002A3BC000C4BFFFC9D7C651B787F44
+S219030619A4EB787FE3FB784BFFFC21B07F00107F83E37838802D
+S21903062E000638BE00084BFFF971801E00042C00000A4082005D
+S219030643243C8000013CA0000338A508387FC6F378387E00183F
+S2190306586084D4C048000B5D48000034881F000D700900034071
+S21903066D820010A01E00162C0000004182001C3CA0000338A543
+S21903068208107FC6F378387E0018388003E848000B2980010025
+S2190306972C7C0803A683410010836100148381001883A1001CC5
+S2190306AC83C1002083E10024382100284E8000209421FFE07CC6
+S2190306C10802A69361000C9381001093A1001493C1001893E120
+S2190306D6001C900100247C7C1B7883FC0008815C0004A0DF00C4
+S2190306EB00A0FF0002807F000480BF000839000014B11C000CE1
+S2190307003BEA0014801F000C39200005396000005120E0065159
+S21903071560C10E901F000C39200400B13F000EB17F0010B17F12
+S21903072A0012B0EA0014B0DF0002991F000D907F000890BF0036
+S21903073F043D200003800945607C9B2378900A000C813B0000F7
+S21903075438000006912A0010980A0009A13C000C7D435378B1AF
+S2190307692A0002A3BC000C4BFFFB3D7C651B787FA4EB787FE3FE
+S21903077EFB784BFFFAC1B07F00107F83E3787F65DB783880005B
+S219030793064BFFF811800100247C0803A68361000C838100101A
+S2190307A883A1001483C1001883E1001C382100204E8000203D7C
+S2190307BD20000381294854396000002C0900004D8200207D2A52
+S2190307D24B787C0918004082001C2C0B00004182001080090039
+S2190307E700900B000048000008814900007D2B4B78812900002B
+S2190307FC2C0900004082FFD43D200003914948544E80002094BE
+S21903081121FFF87C0802A69001000C3880000038A000014BFF0E
+S219030826FCC18001000C7C0803A6382100084E8000209421FF3B
+S21903083BF87C0802A69001000C38000000900300044BFFFF7156
+S2190308508001000C7C0803A6382100084E8000209421FFF07C62
+S2190308650802A693E1000C900100147C7F1B7848000010800338
+S21903087A0000901F00404BFFF99D807F00402C0300004082FF63
+S21903088FEC800100147C0803A683E1000C382100104E800020D7
+S2190308A49421FFE87C0802A693A1000C93C1001093E1001490B3
+S2190308B901001C7C7D1B7838000000901D0004387D001848007B
+S2190308CE097D7FA3EB784BFFFF8D7FA3EB784BFFFEE1800100FD
+S2190308E31C7C0803A683A1000C83C1001083E100143821001842
+S2190308F84E8000208124000880E30050814900048009000CA191
+S21903090D64000C7D075051540036BA7D6058507D090214418111
+S21903092200707C0A38507D6058517D0802144081006081430034
+S219030937407D275A142C0A00003800000091230050900400004B
+S21903094C41820030800A00002C0000004182001C7D49537881F4
+S219030961290000800900002C0000004082FFF47D2A4B78908A62
+S2190309760000480000109103004490830040916300483860000D
+S21903098B014E800020386000004E8000209421FFF07C0802A60A
+S2190309A093C1000893E1000C90010014812400087C7F1B7883FB
+S2190309B5C90008801F00547D20F0514081006C387F001848003F
+S2190309CA0881811F0054A15F00167D68F0505549043E7F8B4826
+S2190309DF004FFEE3827C000026540007FE7C0000D07D290078E4
+S2190309F47D6B00387D6B4B79408100307D2B50505525043E2CF9
+S219030A090500007C085A14901F0054B13F001641820014807FFA
+S219030A1E0034386300147C835A144BFF9735800100147C080339
+S219030A33A683C1000883E1000C382100104E8000209421FFE059
+S219030A487C0802A69361000C9381001093A1001493C1001893FA
+S219030A5DE1001C900100247C7C1B78807C0004A01C000C83FCF8
+S219030A720008B0030002A3BC000C7C9E23784BFFF82D7C651B1F
+S219030A87787FA4EB787FE3FB784BFFF7B12C0300003B600000C3
+S219030A9C408203A03D20000383A948544800000883BD00002CF4
+S219030AB11D00004182037CA13D0012A01F00027C0900004082D1
+S219030AC6FFE8A13D00142C09000041820028A01F00007C0900D6
+S219030ADB004082FFD07FC3F378389D000838A000044BFFA0E538
+S219030AF02C0300004082FFB8801D0004817E0004A13E00082C8A
+S219030B05000002917D000CB13D001041820024881F000D7009A5
+S219030B1A0004418200187FA3EB784BFFFD817F83E3784BFFF6F5
+S219030B2FF14800031C813D00043809FFFF28000009418102FC5F
+S219030B443D600003396B3EE85400103A7D4B002E3D20000339FD
+S219030B59293EE87D4A4A147D4903A64E800420881F000D70097D
+S219030B6E00024182004038000002901D0004813F0004A17F0096
+S219030B830039290001913D0050B17D0014801E0000392000009B
+S219030B98901D0008B13D004C7FA3EB78B13D00163880001248B6
+S219030BAD0002247FC4F3787F83E3784BFFFB0548000280387D31
+S219030BC2001848000685881F000D7009000441820010380000EF
+S219030BD701901D000448000260700900024082023870090010A5
+S219030BEC41820250813D0054807F0008392900017C0348004054
+S219030C0182023C38000004907D0054901D00044800022C881FAB
+S219030C16000D83DD005070090010418200107FA3EB787F84E33D
+S219030C2B784BFFFD6D7FA3EB787F84E3784BFFFCC5881F000DDE
+S219030C407C7B1B787009000141820024807F0004801D00507C40
+S219030C55030000408200143803000139200005901D0050913D44
+S219030C6A0004801D00507C00F00040820010A01D004C2C000009
+S219030C7F00418201BCA3FD00162C1F000040820024387D001824
+S219030C94480005B57FA3EB783880001038A000004BFFF841B3E6
+S219030CA9FD004C4800019038000001B01D004C48000184881F46
+S219030CBE000D70090010418201787FA3EB787F84E3784BFFFC1E
+S219030CD3C9813D0054801F0008392900017C0048004082015840
+S219030CE838000000901D00047FA3EB784BFFFAC948000144885F
+S219030CFD1F000D70090010418200607FA3EB787F84E3784BFFD5
+S219030D12FC89813D0054801F0008392900017C0048004082009D
+S219030D2740881F000D700900014182002C813D00503800000A02
+S219030D3C39290001913D0050901D00047FA3EB783880001038E3
+S219030D51A000004BFFF7914800000C38000008901D0004881F27
+S219030D66000D70090001418200D0387D0018480004D5813D00AA
+S219030D7B503800000939290001913D0050901D00047FA3EB7813
+S219030D90388000114800003C7FA3EB787F84E3784BFFFB5D88EC
+S219030DA51F000D7C7B1B78700900014182008C813D005038006C
+S219030DBA000A39290001913D0050901D00047FA3EB78388000A3
+S219030DCF1038A000004BFFF71148000064881F000D70090010E4
+S219030DE4418200587FA3EB787F84E3784BFFFBA9813D00548074
+S219030DF91F0008392900017C00480040820038387D0018480080
+S219030E0E043D3800000A901D0004480000247FA3EB78388000EA
+S219030E230038A000014BFFF6BD480000107FC4F3787F83E37879
+S219030E384BFFF8852C1B00004082000C7F83E3784BFFF3D580D2
+S219030E4D0100247C0803A68361000C8381001083A1001483C1B6
+S219030E62001883E1001C382100204E8000209421FFF87C080242
+S219030E77A69001000C4BFFF461480004218001000C7C0803A655
+S219030E8C382100084E8000209421FFE87C0802A6938100089383
+S219030EA1A1000C93C1001093E100149001001C7C7D1B787C9C4A
+S219030EB623783880000038A006444BFF93753D600003810B48E4
+S219030ECB54381D006C395D0058901D0034915D003039200001AE
+S219030EE0380005EA93AB4854913D0004B39D0012B01D003A9128
+S219030EF51D0000915D003C386000008001001C7C0803A6838133
+S219030F0A000883A1000C83C1001083E10014382100184E800087
+S219030F1F209421FFF07C0802A693E1000C900100147C7F1B7812
+S219030F34480000084BFFFF39801F00042C00000041820010A08C
+S219030F491F00162C0000004082FFE8800100147C0803A683E15B
+S219030F5E000C382100104E8000209421FFF07C0802A693E100CF
+S219030F730C900100147C7F1B784BFFFFA5817F0004696900045A
+S219030F88200900007D20491469600002214000007C0A01147DE5
+S219030F9D2A03794182002038000007901F00047FE3FB7838802F
+S219030FB2001138A000004BFFF52D480000242C0B000540820063
+S219030FC71C38000006901F00047FE3FB783880001138A000008A
+S219030FDC4BFFF5097FE3FB784BFFF87D800100147C0803A683D7
+S219030FF1E1000C382100104E8000209421FFE87C0802A69381C3
+S219031006000893A1000C93C1001093E100149001001C7CBE2B87
+S21903101B797C7F1B787C9D237840810010801F00482C00000019
+S2190310304082001438600000480000B8907F0048480000AC3BAF
+S21903104580000048000064809F00447FA3EB784BFF9109807F97
+S21903105A0040801F0048812300007FC0F050913F00407F9C0202
+S21903106F147FBD02144BFFF1A9807F00402C0300004182FFBC2E
+S21903108481630008A123000C800B000C540036BA7D20485091F2
+S2190310993F0048800B000C540036BA7D6B0214917F00442C1E3C
+S2190310AE00004182003C80BF00487C1E28004080FF90809F006F
+S2190310C3447FA3EB787FC5F3784BFF9091813F0044801F004842
+S2190310D87D29F2147C1E0050901F0048913F00447F9CF2147FBA
+S2190310ED83E3788001001C7C0803A68381000883A1000C83C1BE
+S219031102001083E10014382100184E8000209421FFF07C0802BF
+S219031117A693C1000893E1000C900100147CBE2B797C7F1B7828
+S21903112C807F00344081006C813F00043929FFFC2809000140B3
+S21903114181000C3860FFFF48000058A01F00162C00000040820B
+S2190311560048213E05B47D2949107D294BB87D2048F87FC94807
+S21903116B38700005B47D3E0378386300147FC5F3784BFF8FE1B8
+S2190311807FE3FB78B3DF00163880001038A000004BFFF3557F24
+S219031195C3F3784800000838600000800100147C0803A683C121
+S2190311AA000883E1000C382100104E8000209421FFE87C080237
+S2190311BFA69381000893A1000C93C1001093E100149001001C78
+S2190311D47C7F1B787CBD2B787CDC3378909F0004480005453D8F
+S2190311E920000381294858907F00082C09000093BF000C939FA0
+S2190311FE0010418200187C09F80041820020812900002C0900AA
+S219031213004082FFF03D2000038009485893E94858901F0000B9
+S2190312288001001C7C0803A68381000883A1000C83C1001083CC
+S21903123DE10014382100184E8000203D2000038129485839401D
+S21903125200002C0900004D8200207D2B4B787C09180040820091
+S219031267202C0A00004182001080090000900A00004800001CBA
+S21903127C81690000480000147D2A4B78812900002C0900004086
+S21903129182FFD03D200003916948584E8000209421FFE87C08E7
+S2190312A602A693A1000C93C1001093E100149001001C3D20004D
+S2190312BB0383E948583BC000002C1F00003FA0000341820064B8
+S2190312D048000459801F0008813F00047C6018507C0348404165
+S2190312E580003C2C1E000041820010801F0000901E000048007E
+S2190312FA000C801F0000901D4858801F000C807F00107C08039E
+S21903130FA63BC000004E80002183FD48584800000C7FFEFB78CD
+S21903132483FF00002C1F00004082FFA48001001C7C0803A6832D
+S219031339A1000C83C1001083E10014382100184E80002094210A
+S21903134EFFE87C0802A69381000893A1000C93C1001093E1003B
+S219031363149001001C7C7D1B7883FD0004A13F0002A01F0000FB
+S21903137869290800216900007D2B491468000001216000007CC9
+S21903138D0B01147C0B4839418200D83FC00003387F0018389ED9
+S2190313A2456038A000044BFF98292C030000408200BCA01F0036
+S2190313B7062C00000140820064813F000E38000002B01F0006E3
+S2190313CC913F0018801F0008391F0008A1280004901F0012384F
+S2190313E19F0012B1240004801E45603D200003901F000E81493B
+S2190313F6482839294828A1690004915F0008B16800043800003D
+S21903140B1CB01D000C7FA3EB7838A008064BFFEFC948000050CA
+S2190314202C000002408200483FC00004801E2BB03B9E2BB02C1B
+S21903143500000041820034807C0008389F000E38A000044BFF94
+S21903144A97897C631B794082001CA01F000C817F0008813C0084
+S21903145F04B009000491690000907E2BB07FA3EB784BFFEDAD63
+S2190314748001001C7C0803A68381000883A1000C83C10010837E
+S219031489E10014382100184E8000209421FFD87C0802A6936146
+S21903149E00149381001893A1001C93C1002093E1002490010004
+S2190314B32C7C7F1B787C9D23783860002A4BFFECF97C7E1B792F
+S2190314C840820018480001007FC3F3784BFFED493860000048D7
+S2190314DD0000F4817E000439200004992B000539400001390022
+S2190314F2080038000006980B0004B14B0000B14B0006B10B0036
+S219031507023D200003800945603D400003900B000E392A48283B
+S21903151CA1090004800A4828B10B000C900B0008813F00003DA2
+S219031531400004912B0018396A2BB0380000FF93EB00089801B1
+S219031546000D93AB000439200001912A2BB0980100089801000F
+S21903155B099801000A9801000B9801000C3BA000073F800004D9
+S2190315703B60001CB37E000C7FC3F3783881000838A008064BCB
+S219031585FFEE5D480001A17C7F1B78480000144BFFED49801C0F
+S21903159A2BB02C0000004182FF30480001857C7F1850280300DF
+S2190315AFF94081FFE47FA0EB782C0000003BBDFFFF4181FFB469
+S2190315C47FC3F3784BFFEC553860FFFF8001002C7C0803A683DF
+S2190315D96100148381001883A1001C83C1002083E100243821DF
+S2190315EE00284E8000209421FFD87C0802A693010008932100C2
+S2190316030C93410010936100149381001893A1001C93C10020E2
+S21903161893E100249001002C3D2000043B292BBC3B1900967C4E
+S21903162D7B1B787C9C23787F3DCB783B4000007FBEEB787F63E3
+S219031642DB787FC4F37838A000044BFF95852C0300007F5FD36A
+S21903165778418200383BBE000A7C1DC0003B5F000A4081FFD46F
+S21903166C801B00007F63DB78901C0000389C00044BFFFE192C80
+S219031681030000408000283860FFFF4800006C7C1AC82EA13DAD
+S2190316960008817D0004B13C0008901C0000917C000448000033
+S2190316AB4C3CC000038126458480FC0000390900011D29000A58
+S2190316C03D600004A15C0008801C0004396B2BBC7CE9592E7DD3
+S2190316D5295A142C080010B1490008900900049106458440825C
+S2190316EA000C3800000090064584386000008001002C7C080374
+S2190316FFA6830100088321000C83410010836100148381001804
+S21903171483A1001C83C1002083E10024382100284E8000209489
+S21903172921FFF87C0802A69001000C3D20000039293200800948
+S21903173E0048386003E87C0803A64E8000213D20000380694519
+S2190317538838630001906945888001000C7C0803A63821000874
+S2080317684E80002087
+S2190317703C746F7069633E0048656C702061626F757420686512
+S2190317856C703F0000000068656C70000000005B2D77203C74B4
+S21903179A696D656F75743E5D205B656E7472795D0000457865D8
+S2190317AF6375746520636F64652061742061206C6F636174699F
+S2190317C46F6E0000676F00002D62203C6C6F636174696F6E3ED3
+S2190317D9205B2D6C203C6C656E6774683E5D00446973706C6109
+S2190317EE7920286865782064756D702920612072616E6765200B
+S2190318036F66206D656D6F72790000000064756D700000000084
+S2190318185B4F4E207C204F46465D00004D616E616765206D6190
+S21903182D6368696E65206361636865730000006361636865001C
+S21903184200000A526564426F6F7428746D292064656275672057
+S219031857656E7669726F6E6D656E74202D206275696C742025ED
+S21903186C732C2025730A000030373A33393A3235000000004F01
+S2190318816374203237203230303000506C6174666F726D3A2069
+S219031896257320282573292025730A0000004D6F746F726F6CE6
+S2190318AB61204D425800000000506F776572504320383630005A
+S2190318C000000000436F707972696768742028432920323030EC
+S2190318D5302C20526564204861742C20496E632E0A0A005241E7
+S2190318EA4D3A2025702D25700A003D3D20457865637574696EFA
+S2190318FF6720626F6F742073637269707420696E2025642E25E9
+S219031914303364207365636F6E6473202D20656E746572205ED7
+S2190319294320746F2061626F72740A00000000526564426F6FDE
+S21903193E743E200000002A2A204572726F723A20496C6C6567F5
+S219031953616C20636F6D6D616E643A2025730A00006F6E0000D2
+S2190319686F666600496E76616C6964206361636865206D6F64EC
+S21903197D653A2025730A00636163686573203F0A000000257384
+S2190319920A20202025732025730A0000000062617365206164F4
+S2190319A76472657373000000006C656E677468000044756D70EA
+S2190319BC2077686174205B6C6F636174696F6E5D3F0A00007749
+S2190319D16169742074696D656F757400000000737461727469FD
+S2190319E66E6720616464726573730000000041626F757420747A
+S2190319FB6F20737461727420657865637574696F6E2061742009
+S219031A102570202D2061626F72742077697468205E4320776902
+S219031A257468696E202564207365636F6E64730A0000004C6F74
+S219031A3A616420612066696C65006C6F616400000000454C4612
+S219031A4F20696D61676573206E6F7420737570706F727465646D
+S219031A640A000000496E76616C696420532D7265636F72642055
+S219031A796174206F66667365742025702C20696E7075743A2049
+S219031A8E25630A00000042616420532D7265636F726420636F91
+S219031AA3756E74206174206F66667365742025700A0000000074
+S219031AB841646472657373206F6666736574203D2025700A0088
+S219031ACD000000417474656D707420746F206C6F616420532DBA
+S219031AE27265636F7264206461746120746F2061646472657318
+S219031AF7733A202570205B6E6F7420696E2052414D5D0A000046
+S219031B0C2A2A2A205761726E696E672120436865636B73756DD4
+S219031B21206661696C757265202D20416464723A20256C782C28
+S219031B36202530326C58203C3E202530326C580A0000456E74F1
+S219031B4B727920706F696E743A2025702C206164647265737327
+S219031B602072616E67653A2025702D25700A0000496E76616C86
+S219031B75696420532D7265636F7264206174206F6666736574CB
+S219031B8A203078256C782C20747970653A2025780A000000005E
+S219031B9F00FFFF41CCFFFF4030FFFF4030FFFF4030FFFF41B4E1
+S219031BB4FFFF41B4FFFF41B4FFFF417CFFFF417CFFFF417C25D8
+S219031BC96308000A000000766572626F7365006C6F6164207262
+S219031BDE617720646174610000006C6F61642061646472657325
+S219031BF37300000000646F776E6C6F6164206D6F6465202854A9
+S219031C08465450206F722078797A4D4F44454D29000000006846
+S219031C1D6F7374206E616D652028495020616464726573732983
+S219031C32000066696C65206E616D65000000496E76616C69646D
+S219031C4720495020616464726573733A2025730A006D6F646520
+S219031C5C6D000000496E76616C696420276D6F6465273A2025A5
+S219031C71730A00746674700000000054465450206D6F646520F8
+S219031C867265717569726573206120776F726B696E67206E653C
+S219031C9B74776F726B0A00000046696C65206E616D65206D69B4
+S219031CB07373696E670A000075736167653A206C6F6164202595
+S219031CC5730A0043616E2774206C6F616420272573273A202593
+S219031CDA730A00000000526177206C6F616420726571756972CE
+S219031CEF65732061206D656D6F727920616464726573730A00B6
+S219031D045261772066696C65206C6F616465642025702D2570D8
+S219031D190A0000454C4600556E7265636F676E697A6564206956
+S219031D2E6D61676520747970653A20256C780A0000006574686E
+S219031D43300000000071756963635F657468000000515549436C
+S219031D58432045746865726E65743A204E6F206672656520785B
+S219031D6D6D697420627566666572730A000000000000007B631A
+S219031D826D64737D00004D616E61676520464C41534820696DB6
+S219031D976167657300666973005B2D6C5D000000004D616E617F
+S219031DAC676520636F6E66696775726174696F6E206B657074E2
+S219031DC120696E20464C415348206D656D6F72790000006663FE
+S219031DD66F6E666967005B2D665D00000000496E697469616CC8
+S219031DEB697A6520464C41534820496D616765205379737465CA
+S219031E006D205B4649535D00696E6974000000005B2D635D00A2
+S219031E15000000446973706C617920636F6E74656E7473206FBD
+S219031E2A6620464C41534820496D6167652053797374656D20DF
+S219031E3F5B4649535D000000006C697374000000000000000030
+S219031E54446973706C61792066726565205B617661696C61628E
+S219031E696C655D206C6F636174696F6E732077697468696E206F
+S219031E7E464C41534820496D6167652053797374656D205B4670
+S219031E9349535D000066726565000000002D66203C666C617302
+S219031EA8685F616464723E202D6C203C6C656E6774683E004563
+S219031EBD7261736520464C41534820636F6E74656E7473000041
+S219031ED2000065726173650000006E616D650000000044697322
+S219031EE7706C617920616E20696D6167652066726F6D20464C90
+S219031EFC41534820496D6167652053797374656D205B464953E8
+S219031F115D000064656C65746500005B2D62203C6D656D6F727D
+S219031F26795F6C6F61645F616464726573733E5D205B2D635DDE
+S219031F3B206E616D65000000004C6F616420696D61676520669F
+S219031F50726F6D20464C41534820496D6167652053797374655D
+S219031F656D205B4649535D20696E746F2052414D0000006C6F83
+S219031F7A6164000000002D62203C6D656D5F626173653E202DD6
+S219031F8F6C203C696D6167655F6C656E6774683E205B2D732010
+S219031FA43C646174615F6C656E6774683E5D205B2D66203C66FE
+S219031FB96C6173685F616464723E5D205B2D65203C656E7472AC
+S219031FCE795F706F696E743E5D205B2D72203C72616D5F61647F
+S219031FE364723E5D203C6E616D653E0000437265617465206160
+S219031FF86E20696D6167650063726561746500002A2A2A2069C0
+S21903200D6E76616C696420276669732720636F6D6D616E643A4F
+S2190320222025730A0000666973200000000066756C6C20696ED3
+S219032037697469616C697A6174696F6E2C20657261736573208C
+S21903204C616C6C206F6620666C6173680000000041626F757420
+S21903206120746F20696E697469616C697A65205B666F726D617D
+S219032076745D20464C41534820696D6167652073797374656D06
+S21903208B002A2A2041626F727465640A002A2A2A20496E6974C7
+S2190320A069616C697A6520464C41534820496D61676520537928
+S2190320B57374656D0A0000202020696E697469616C697A617449
+S2190320CA696F6E206661696C65642025703A2025782825732999
+S2190320DF0A00000000202020205761726E696E673A20646576EB
+S2190320F469636520636F6E74656E7473206E6F742065726173D4
+S21903210965642C20736F6D6520626C6F636B73206D6179206E5D
+S21903211E6F7420626520757361626C650A00526564426F6F7485
+S21903213300526564426F6F745B6261636B75705D005265644255
+S2190321486F6F7420636F6E666967000046495320646972656389
+S21903215D746F72790000004572726F722077726974696E672049
+S219032172696D6167652064657363726970746F72732061742066
+S21903218725703A202578282573290A0000646973706C617920A6
+S21903219C636865636B73756D730000004E616D6520202020203F
+S2190321B1202020202020202020464C4153482061646472202088
+S2190321C6202573202020204C656E677468202020202020456EEF
+S2190321DB74727920706F696E740A000000436865636B73756D01
+S2190321F0000000004D656D206164647200000000252D313673CC
+S219032205202030782530386C5820202030782530386C582020EA
+S21903221A30782530386C58202030782530386C580A00202030FB
+S21903222F782530386C58202E2E2030782530386C580A0000002A
+S2190322446D656D6F7279206261736520616464726573730072B1
+S219032259616D2062617365206164647265737300000000656E06
+S21903226E74727920706F696E74206164647265737300464C41D1
+S2190322835348206D656D6F72792062617365206164647265739C
+S21903229873000000696D616765206C656E677468205B696E209F
+S2190322AD464C4153485D00696D6167652073697A65205B61632C
+S2190322C27475616C20646174615D0000000066696C65206E61A3
+S2190322D76D65000000696E76616C696420617267756D656E74AE
+S2190322EC73000000726571756972656420706172616D65746592
+S21903230172206D697373696E670000496E76616C696420464CBA
+S21903231641534820696D6167652073697A652F6C656E6774681F
+S21903232B20636F6D62696E6174696F6E00496E76616C696420FB
+S219032340464C41534820616464726573733A202570202825733D
+S219032355290A0020202076616C69642072616E6765206973207F
+S21903236A25702D25700A000000002A2A205741524E494E473A31
+S21903237F2052414D20616464726573733A202570206D617920C5
+S219032394626520696E76616C69640A004E616D65206973207443
+S2190323A96F6F206C6F6E672C206D757374206265206C65737396
+S2190323BE207468616E2025642063686172730A00000043616E41
+S2190323D32774206C6F6361746520256C642062797465732066D8
+S2190323E872656520696E20464C4153480A000000496D6167652A
+S2190323FD20666F756E642C2062757420464C4153482061646419
+S2190324127265737320696E636F72726563740A000000496D61E6
+S219032427676520666F756E642C20627574204C454E47544820F7
+S21903243C697320696E636F72726563740A000000416E20696D0F
+S219032451616765206E616D656420272573272065786973747356
+S219032466000043616E27742070726F6772616D2074686973209C
+S21903247B726567696F6E202D20636F6E7461696E7320636F649E
+S2190324906520696E20757365210A000043616E27742065726136
+S2190324A5736520726567696F6E2061742025703A2025782825B0
+S2190324BA73290A00000043616E27742070726F6772616D207208
+S2190324CF6567696F6E2061742025703A202578282573290A004A
+S2190324E44572726F722065726173696E672061742025703A20C4
+S2190324F92578282573290A000000004572726F722070726F6754
+S21903250E72616D6D696E672061742025703A202578282573293B
+S2190325230A000000006C656E67746800006D697373696E6720F5
+S219032538617267756D656E7400000000696D616765206E616DC4
+S21903254D65000044656C65746520696D61676520272573270090
+S21903256200004E6F20696D616765202725732720666F756E643A
+S2190325770A000000006D656D6F7279205B6C6F61645D20626149
+S21903258C736520616464726573730000646973706C61792063DB
+S2190325A16865636B73756D000000004E6F742061206C6F6164BB
+S2190325B661626C6520696D6167650A0000002A2A205761726E3B
+S2190325CB696E67202D20636865636B73756D206661696C757252
+S2190325E0652E202073746F7265643A202530386C782C20636F91
+S2190325F56D70757465643A202530386C780A00436865636B7314
+S21903260A756D3A202530386C780A00000000464C4153483A2034
+S21903261F64726976657220696E6974206661696C6564212C204C
+S2190326347374617475733A2025780A00464C4153483A20257087
+S219032649202D2025702C20256420626C6F636B73206F662025C5
+S21903265E7020627974657320656163682E0A00000000746F6F6D
+S2190326732066657720617267756D656E7473000000756E726538
+S219032688636F676E697A656420636F6D6D616E64000000005291
+S21903269D756E2073637269707420617420626F6F740000626FEE
+S2190326B26F745F73637269707400426F6F7420736372697074EB
+S2190326C700626F6F745F7363726970745F646174610000000055
+S2190326DC426F6F74207363726970742074696D656F7574202829
+S2190326F1313030306D73207265736F6C7574696F6E2900626FBD
+S2190327066F745F7363726970745F74696D656F75740025733AA7
+S21903271B200000000025732000747275650000000066616C7363
+S219032730650000002564200030782530325800003A000000209D
+S2190327450000003F3F00000A0000002E2E2025730A0000456E1E
+S21903275A746572207363726970742C207465726D696E6174654D
+S21903276F207769746820656D707479206C696E650A0000000050
+S2190327843E3E2000FFFF0BE8FFFF0C0CFFFF0C88FFFF0C94FF66
+S219032799FF0C20FFFF0C3CFFFF0D9CFFFF0DB0FFFF0F24FFFF21
+S2190327AE0E74FFFF0DCCFFFF0E10FFFF0A68FFFF0A68FFFF0AB1
+S2190327C378FFFF0A80FFFF0A68FFFF0A706C69737420636F6EF5
+S2190327D866696775726174696F6E206F6E6C79002A2A20696E7F
+S2190327ED76616C696420656E7472790A00000055706461746500
+S21903280220526564426F6F74206E6F6E2D766F6C6174696C65F2
+S21903281720636F6E66696775726174696F6E0000004572726F74
+S21903282C722077726974696E6720636F6E6669672064617461A9
+S2190328412061742025703A202578282573290A000000000000E6
+S2190328560000FFFF0820FFFF0880FFFF0838FFFF083CFFFF0833
+S21903286B50FFFF08705265717565737420666F7220636F6E6674
+S21903288069672076616C75652027257327202D2077726F6E678E
+S21903289520747970650A0043616E27742066696E6420636F6E6C
+S2190328AA6669672076616C756520272573270A0000000000008E
+S2190328BF00FFFF0610FFFF0610FFFF0674FFFF0630FFFF061014
+S2190328D4FFFF061C464C41534820636F6E66696775726174699E
+S2190328E96F6E20636865636B73756D206572726F72206F722017
+S2190328FE696E76616C6964206B65790A000000000000FFFF392C
+S21903291384FFFF3984FFFF3984FFFF3984FFFF3984FFFF39847C
+S219032928FFFF3984FFFF3984FFFF3984FFFF3984FFFF3984FFEC
+S21903293DFF3984FFFF3984FFFF3984FFFF3984FFFF3984FFFFD7
+S21903295239A4FFFF39C4FFFF39E4FFFF3A04FFFF3A24FFFF3AA5
+S21903296788FFFF3A88FFFF3A88FFFF3A88FFFF3A44FFFF3A6473
+S21903297CFFFF3A64FFFF3A64FFFF3A64FFFF3A64FFFF3A64FF33
+S219032991FF3A64FFFF3A64FFFF3A64FFFF3A64FFFF3A64FFFF1E
+S2190329A63A64FFFF3A64FFFF3A64FFFF3A64FFFF3A64FFFF3ACE
+S2190329BB64FFFF3A64FFFF3A64FFFF3A64FFFF3A64FFFF3A648F
+S2190329D0FFFF3A64FFFF3A64FFFF3A64FFFF3A64FFFF3A64FFDF
+S2190329E5FF3A64FFFF3A64FFFF3A64FFFF3A64FFFF3A64FFFFCA
+S2190329FA3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A1A
+S219032A0F44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FA
+S219032A24FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FF2A
+S219032A39FF39BCFFFF39BCFFFF39E0FFFF3A04FFFF3A04FFFF0C
+S219032A4E3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A28FFFF3AE1
+S219032A6344FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44A6
+S219032A78FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFD6
+S219032A8DFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFFC1
+S219032AA23A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A71
+S219032AB744FFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A4452
+S219032ACCFFFF3A44FFFF3A44FFFF3A44FFFF3A44FFFF3A44FF82
+S219032AE1FF3978FFFF3978FFFF3978FFFF3978FFFF3978FFFF6E
+S219032AF63978FFFF3978FFFF3978FFFF3978FFFF3978FFFF391F
+S219032B0B78FFFF3978FFFF3978FFFF3978FFFF3978FFFF3978CA
+S219032B20FFFF3998FFFF39B8FFFF39D8FFFF39F8FFFF3A18FF4D
+S219032B35FF3A7CFFFF3A7CFFFF3A7CFFFF3A7CFFFF3A38FFFF44
+S219032B4A3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A64
+S219032B5F58FFFF3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A5831
+S219032B74FFFF3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A58FF75
+S219032B89FF3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A58FFFF60
+S219032B9E3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A10
+S219032BB358FFFF3A58FFFF3A58FFFF3A58FFFF3A58FFFF3A58DD
+S219032BC83031323334353637383961626364656600000000008E
+S219032BDD000000503031004F4B000045303100453033004530CD
+S219032BF2320042303100FFFF4E10FFFF5610FFFF4E7CFFFF5417
+S219032C07D0FFFF5350FFFF5610FFFF5610FFFF5610FFFF5008BD
+S219032C1CFFFF5624FFFF5610FFFF5610FFFF5610FFFF5610FF94
+S219032C31FF5104FFFF5610FFFF5610FFFF5008FFFF4E60FFFF6A
+S219032C465610FFFF5350FFFF5624FFFF5610FFFF5610FFFF56D6
+S219032C5B10FFFF5100FFFF5610FFFF5610FFFF5610FFFF56106D
+S219032C70FFFF5610FFFF5610FFFF5610FFFF5610FFFF5610FF54
+S219032C85FF559CFFFF5350FFFF5610FFFF5610FFFF5610FFFF77
+S219032C9A4E6CFFFF5610FFFF5610FFFF5610FFFF54B0FFFF56E1
+S219032CAF10FFFF501CFFFF5610FFFF5610FFFF5610FFFF4E54C2
+S219032CC4FFFF54C8FFFF53500000000030313233343536373864
+S219032CD9394142434445460000000000000000FFFF6928FFFF83
+S219032CEE6928FFFF6928FFFF6928FFFF6928FFFF6928FFFF6995
+S219032D0328FFFF6928FFFF6928FFFF6928FFFF6928FFFF6928C0
+S219032D18FFFF6928FFFF6928FFFF6928FFFF6928FFFF6868FF95
+S219032D2DFF6868FFFF689CFFFF68D0FFFF68D0FFFF6928FFFFBF
+S219032D426928FFFF6928FFFF6928FFFF6904FFFF6928FFFF6964
+S219032D5728FFFF6928FFFF6928FFFF6928FFFF6928FFFF69286C
+S219032D6CFFFF6928FFFF6928FFFF6928FFFF6928FFFF6928FF80
+S219032D81FF6928FFFF6928FFFF6928FFFF6928FFFF6928FFFF6B
+S219032D966928FFFF6928FFFF6928FFFF6928FFFF6928FFFF69EC
+S219032DAB28FFFF6928FFFF6928FFFF6928FFFF6928FFFF692818
+S219032DC0FFFF6928FFFF6928FFFF6928FFFF6928FFFF68DCFF79
+S219032DD5FF68DCFFFF68DCFFFF68DCFFFF68DCFFFF68DCFFFF98
+S219032DEA68DCFFFF68DCFFFF68DCFFFF68DCFFFF68DCFFFF681A
+S219032DFFDCFFFF68DCFFFF68DCFFFF68DCFFFF68DCFFFF690468
+S219032E14FFFF6928FFFF694CFFFF6970FFFF6994FFFF6A00FF26
+S219032E29FF6A00FFFF6A00FFFF6A00FFFF69B8FFFF69D8FFFFF7
+S219032E3E69D8FFFF69D8FFFF69D8FFFF69D8FFFF69D8FFFF69D3
+S219032E53D8FFFF69D8FFFF69D8FFFF69D8FFFF69D8FFFF69D84F
+S219032E68FFFF69D8FFFF69D8FFFF69D8FFFF69D8FFFF69D8FF13
+S219032E7DFF69D8FFFF69D8FFFF69D8FFFF69D8FFFF69D8FFFFFE
+S219032E9269D8FFFF69D8FFFF69D8FFFF69D8FFFF69D8FFFF697F
+S219032EA7D8FFFF69D8FFFF69D8FFFF69D8FFFF69D8FFFF69587B
+S219032EBCFFFF6958FFFF6958FFFF6958FFFF6958FFFF6958FF3F
+S219032ED1FF6958FFFF6958FFFF6958FFFF6958FFFF6958FFFF2A
+S219032EE66958FFFF6958FFFF6958FFFF6958FFFF6958FFFF69AB
+S219032EFB80FFFF69A0FFFF69C0FFFF69E0FFFF6A00FFFF6A688D
+S219032F10FFFF6A68FFFF6A68FFFF6A68FFFF6A20FFFF6A40FF05
+S219032F25FF6A40FFFF6A40FFFF6A40FFFF6A40FFFF6A40FFFF48
+S219032F3A6A40FFFF6A40FFFF6A40FFFF6A40FFFF6A40FFFF6AC8
+S219032F4F40FFFF6A40FFFF6A40FFFF6A40FFFF6A40FFFF6A40DD
+S219032F64FFFF6A40FFFF6A40FFFF6A40FFFF6A40FFFF6A40FF09
+S219032F79FF6A40FFFF6A40FFFF6A40FFFF6A40FFFF6A40FFFFF4
+S219032F8E6A40FFFF6A40FFFF6A40FFFF6A40FFFF6A40FFFF6975
+S219032FA3C0FFFF69C0FFFF69C0FFFF69C0FFFF69C0FFFF69C08E
+S219032FB8FFFF69C0FFFF69C0FFFF69C0FFFF69C0FFFF69C0FF3A
+S219032FCDFF69C0FFFF69C0FFFF69C0FFFF69C0FFFF69C0FFFF25
+S219032FE269E8FFFF6A08FFFF6A28FFFF6A48FFFF6A68FFFF6A99
+S219032FF7B0FFFF6AB0FFFF6AB0FFFF6AB0FFFF6AB0FFFF6A88BD
+S21903300CFFFF6A88FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFF8
+S219033021FF6A88FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFFFE3
+S2190330366A88FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFFF6A63
+S21903304B88FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFFF6A8830
+S219033060FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFA4
+S219033075FF6A88FFFF6A88FFFF6A88FFFF6A88FFFF6A88FFFF8F
+S21903308A6A0CFFFF6A50FFFF6A0CFFFF6A50FFFF6A0CFFFF6AF3
+S21903309F50FFFF6A0CFFFF6A50FFFF6A0CFFFF6A50FFFF6A0CF8
+S2190330B4FFFF6A50FFFF6A0CFFFF6A50FFFF6A0CFFFF6A50FFF0
+S2190330C9FF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF53
+S2190330DE6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6AD3
+S2190330F350FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50D8
+S219033108FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50FF13
+S21903311DFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFFFE
+S2190331326A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A7E
+S21903314750FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A5083
+S21903315CFFFF6A50FFFF6A50FFFF6A50FFFF6A50FFFF6A50FFBF
+S219033171FF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF32
+S2190331866A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6AB2
+S21903319B68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A689F
+S2190331B0FFFF69A8FFFF69A8FFFF69DCFFFF6A10FFFF6A10FFB2
+S2190331C5FF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A44FFFF02
+S2190331DA6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A5E
+S2190331EF68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A684B
+S219033204FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FF9E
+S219033219FF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF89
+S21903322E6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A09
+S21903324368FFFF6A68FFFF6A68FFFF6A68FFFF6A68FFFF6A68F6
+S21903325830313233343536373839000030313233343536373878
+S21903326D396162636465660000000030313233343536373839A9
+S2190332824142434445460000000000000000FFFF728CFFFF742C
+S2190332973CFFFF743CFFFF743CFFFF743CFFFF743CFFFF743C78
+S2190332ACFFFF743CFFFF743CFFFF743CFFFF743CFFFF73D0FF0D
+S2190332C1FF728CFFFF743CFFFF743CFFFF743CFFFF743CFFFF3D
+S2190332D6743CFFFF743CFFFF743CFFFF743CFFFF743CFFFF7401
+S2190332EB3CFFFF743CFFFF726CFFFF743CFFFF743CFFFF7364CF
+S219033300FFFF743CFFFF743CFFFF743CFFFF743CFFFF728C00FC
+S2190333150000005E430A003078253038583A20000000002530B4
+S21903332A3258000000002020000020000000207C000025630078
+S21903333F007C0A0000202D2061726520796F75207375726520CA
+S21903335428792F6E293F2000556E62616C616E636564207374A2
+S21903336972696E67210A00416D626967756F757320636F6D6DF4
+S21903337E616E6420272573272C2063686F696365732061726577
+S2190333933A20257300202573000A00000055736167653A0A0030
+S2190333A82020257325732025730A00002A2A204572726F723A1E
+S2190333BD20257320616C7265616479207370656369666965646D
+S2190333D20A002A2A204572726F723A20696E76616C6964206E87
+S2190333E7756D626572202725732720666F722025730A0000007F
+S2190333FC2A2A204572726F723A20696E76616C696420666C61A2
+S2190334116720272563270A000000002A2A204572726F723A205F
+S2190334266E6F2064656661756C742F6E6F6E2D666C61672061E5
+S21903343B7267756D656E747320737570706F727465640A0000EF
+S2190334504E45544153434949000000004F43544554000000553B
+S2190334656E6B6E6F776E206572726F7200000066696C65206E37
+S21903347A6F7420666F756E6400006163636573732076696F6CCA
+S21903348F6174696F6E000000006469736B2066756C6C206F7286
+S2190334A420616C6C6F636174696F6E206578636565646564006E
+S2190334B9000000696C6C6567616C2054465450206F7065726187
+S2190334CE74696F6E0000756E6B6E6F776E207472616E73666504
+S2190334E3722049440066696C6520616C726561647920657869A5
+S2190334F8737473006E6F20737563682075736572000000006F5F
+S21903350D7065726174696F6E2074696D6564206F757400736FB2
+S2190335226D6520736F7274206F66206E6574776F726B206572BC
+S219033537726F720000696E76616C696420706172616D657465CE
+S21903354C7200000070726F746F636F6C2076696F6C6174696FF7
+S2190335616E000066696C65206973206C61726765722074686149
+S2190335766E206275666665720000FFFF8C20FFFF8C2CFFFF8C46
+S21903358B38FFFF8C44FFFF8C50FFFF8C5CFFFF8C68FFFF8C746D
+S2190335A0FFFF8C80FFFF8C8CFFFF8C98FFFF8CA447444220634E
+S2190335B56F6E6E656374696F6E20706F7274006764625F706FDC
+S2190335CA7274000000004E6574776F726B20646562756720616C
+S2190335DF7420626F6F742074696D6500006E65745F6465627572
+S2190335F46700000055736520424F4F545020666F72206E6574B4
+S219033609776F726B20636F6E66696775726174696F6E00626F78
+S21903361E6F74700000004C6F63616C2049502061646472657305
+S2190336337300000000626F6F74705F6D795F69700044656661F6
+S219033648756C742073657276657220495020616464726573739A
+S21903365D000000626F6F74705F7365727665725F697000257366
+S2190336722E25640A00006E65745F696F5F777269746500000072
+S219033687006E65745F696F5F726561640000000000FFFF90D04F
+S21903369CFFFF90D0FFFF90D0FFFF90D0FFFF90D0FFFF90D0FF3C
+S2190336B1FF90D0FFFF90D0FFFF90D0FFFF90D0FFFF90D0FFFF27
+S2190336C690D0FFFF90D0FFFF90D0FFFF90D0FFFF90D0FFFF9081
+S2190336DBFCFFFF911CFFFF913CFFFF915CFFFF917CFFFF93A039
+S2190336F0FFFF93A0FFFF93A0FFFF93A0FFFF919CFFFF91BCFFB5
+S219033705FF91BCFFFF91BCFFFF91BCFFFF91BCFFFF91BCFFFF31
+S21903371A91BCFFFF91BCFFFF91BCFFFF91BCFFFF91BCFFFF918A
+S21903372FBCFFFF91BCFFFF91BCFFFF91BCFFFF91BCFFFF91BC4A
+S219033744FFFF91BCFFFF91BCFFFF91BCFFFF91BCFFFF91BCFFF2
+S219033759FF91BCFFFF91BCFFFF91BCFFFF91BCFFFF91BCFFFFDD
+S21903376E91BCFFFF91BCFFFF91BCFFFF91BCFFFF91BCFFFF9136
+S21903378354FFFF9154FFFF9154FFFF9154FFFF9154FFFF915466
+S219033798FFFF9154FFFF9154FFFF9154FFFF9154FFFF9154FFA6
+S2190337ADFF9154FFFF9154FFFF9154FFFF9154FFFF9154FFFF91
+S2190337C29180FFFF91A4FFFF91C8FFFF91ECFFFF9210FFFF92A4
+S2190337D7B8FFFF92B8FFFF92B8FFFF92B8FFFF9234FFFF92549D
+S2190337ECFFFF9254FFFF9254FFFF9254FFFF9254FFFF9254FF4D
+S219033801FF9254FFFF9254FFFF9254FFFF9254FFFF9254FFFF37
+S2190338169254FFFF9254FFFF9254FFFF9254FFFF9254FFFF928F
+S21903382B54FFFF9254FFFF9254FFFF9254FFFF9254FFFF9254B8
+S219033840FFFF9254FFFF9254FFFF9254FFFF9254FFFF9254FFF8
+S219033855FF9254FFFF9254FFFF9254FFFF9254FFFF92544E6F24
+S21903386A206E6574776F726B20696E746572666163657320664D
+S21903387F6F756E640A0000000043616E27742067657420424FAE
+S2190338944F545020696E666F202D206E6574776F726B206469F4
+S2190338A97361626C6564210A00000049503A20257300002C2095
+S2190338BE44656661756C74207365727665723A2025730A000075
+S2190338D3000000000025642E25642E25642E25640045746865A4
+S2190338E8726E65742073656E643A0A0045746865726E6574209D
+S2190338FD726563763A0A006574685F6472765F6473722073682B
+S2190339126F756C64206E6F742062652063616C6C65643A207637
+S2190339276563746F722025642C20646174612025780A00000010
+S21903393C000000002E2E2E2045726173652066726F6D2025704B
+S2190339512D25703A2000002E0000000A0000002E2E2E20507299
+S2190339666F6772616D2066726F6D2025702D25702061742025A9
+S21903397B703A2000004E6F206572726F72202D206F70657261DA
+S21903399074696F6E20636F6D706C657465000000496E76616CED
+S2190339A5696420464C41534820616464726573730000004572ED
+S2190339BA726F7220747279696E6720746F2065726173650000AD
+S2190339CF004572726F7220747279696E6720746F206C6F636B48
+S2190339E42F756E6C6F636B004572726F7220747279696E672024
+S2190339F9746F2070726F6772616D0047656E6572696320657202
+S219033A0E726F720000004465766963652F726567696F6E2069BC
+S219033A23732077726974652D70726F74656374656400000000D1
+S219033A38464C415348207375622D73797374656D206E6F742036
+S219033A4D696E697469616C697A656400000000556E6B6E6F7744
+S219033A626E206572726F7200000000000000FFFFA330FFFFA31D
+S219033A773CFFFFA348FFFFA354FFFFA360FFFFA36CFFFFA378F1
+S219033A8CFFFFA384457272203D2025780A000000000000004665
+S219033AA172616D696E67206572726F72202D20626C6B3A20251B
+S219033AB6782F25782F25780A0000435243206572726F72202D6A
+S219033ACB2072656376643A2025303278253032782C20636F6DC7
+S219033AE070757465643A2025780A0000436865636B73756D2053
+S219033AF56572726F72202D2072656376643A2025782C20636FF4
+S219033B0A6D70757465643A2025780A00000043616E27742061E0
+S219033B1F63636573732066696C65000000536F7272792C207AD3
+S219033B344D6F64656D206E6F7420617661696C61626C652079B7
+S219033B4965740054696D6564206F7574000000456E64206F660F
+S219033B5E2066696C650043616E63656C6C6564000000496E76E2
+S219033B73616C6964206672616D696E67004352432F63686563FD
+S219033B886B73756D206572726F720000426C6F636B20736571C2
+S219033B9D75656E6365206572726F7200000000556E6B6E6F772F
+S219033BB26E206572726F7200000000000000FFFFAFD0FFFFAF14
+S219033BC7C4FFFFAFB8FFFFAFACFFFFAFA0FFFFAF94FFFFAF889C
+S219033BDCFFFFAF7CFFFFB074FFFFB074FFFFB06CFFFFB004FF94
+S219033BF1FFB06CFFFFB00CFFFFB044FFFFB04CFFFFB05CFFFFEE
+S219033C06B05CFFFFB054FFFFB064FFFFB044FFFFB07CFFFFB0B7
+S219033C1B5CFFFFB064FFFFB064FFFFB06CFFFFB074FFFFB07CA6
+S219033C30FFFFB07CFFFFB07CFFFFB07CFFFFB07CFFFFB07CFFA6
+S219033C45FFB07CFFFFB064FFFFB064FFFFB064FFFFB064FFFFF1
+S219033C5AB64CFFFFB64CFFFFB64CFFFFB64CFFFFB64CFFFFB697
+S219033C6F4CFFFFB64CFFFFB64CFFFFB64CFFFFB64CFFFFB64CEC
+S219033C84FFFFB64CFFFFB64CFFFFB64CFFFFB64CFFFFB64CFF24
+S219033C99FFB66CFFFFB68CFFFFB6ACFFFFB6CCFFFFB6ECFFFF2F
+S219033CAEB748FFFFB748FFFFB748FFFFB748FFFFB70CFFFFB78D
+S219033CC32CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFFFFB72C53
+S219033CD8FFFFB72CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFF6B
+S219033CEDFFB72CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFFFF56
+S219033D02B72CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFFFFB788
+S219033D172CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFE
+S219033D2CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFFFFB72CFF16
+S219033D41FFB69CFFFFB69CFFFFB69CFFFFB69CFFFFB69CFFFFD6
+S219033D56B69CFFFFB69CFFFFB69CFFFFB69CFFFFB69CFFFFB60A
+S219033D6B9CFFFFB69CFFFFB69CFFFFB69CFFFFB69CFFFFB69C0F
+S219033D80FFFFB6BCFFFFB6E0FFFFB704FFFFB728FFFFB74CFF8C
+S219033D95FFB7E4FFFFB7E4FFFFB7E4FFFFB7E4FFFFB770FFFF89
+S219033DAAB790FFFFB790FFFFB790FFFFB790FFFFB790FFFFB7EC
+S219033DBF90FFFFB790FFFFB790FFFFB790FFFFB790FFFFB790FE
+S219033DD4FFFFB790FFFFB790FFFFB790FFFFB790FFFFB790FF7A
+S219033DE9FFB790FFFFB790FFFFB790FFFFB790FFFFB790FFFF65
+S219033DFEB790FFFFB790FFFFB790FFFFB790FFFFB790FFFFB798
+S219033E1390FFFFB790FFFFB790FFFFB790FFFFB790FFFFB790A9
+S219033E2825733A2043616E27742066696E64206164647265738A
+S219033E3D73206F66207365727665720A0000005F5F7564705FD9
+S219033E5273656E64746F000000007564705F7265637666726F27
+S219033E676D202D2064726F70706564207061636B6574206F66E9
+S219033E7C2025642062797465730A00004275665B25645D2F257D
+S219033E91703A206275663A2025702C206C656E3A2025642F255C
+S219033EA6642C206E6578743A2025700A000046726565206C6920
+S219033EBB7374203D2025700A005F5F656E65745F706F6C6C3A2D
+S219033ED0206E6F206D6F726520627566666572730A00000000EE
+S219033EE5000000FFFFCC80FFFFCCD8FFFFCF54FFFFCD2CFFFFBE
+S219033EFACD2CFFFFCDD4FFFFCE14FFFFCEB0FFFFCEF4FFFFCF2A
+S205033F0F3475
+S219033F100000000000033F2C0003880000031D4000000000003B
+S219033F2500000000000000000250680002508000025058000247
+S219033F3A504000024ED000024D840002547C00024C4400024C35
+S219033F4F3C0003433C0000000008003E2879B800007C2F2D5CC4
+S219033F647C2D00005B2D725D205B2D765D205B2D68203C686F82
+S219033F7973743E5D205B2D6D207B54465450207C2078797A4D47
+S219033F8E4F44454D7D5D205B2D62203C626173655F616464721C
+S219033FA36573733E5D203C66696C655F6E616D653E00000000E1
+S219033FB8000260A40002A0B40002A0B40002A0B40002A0B4008E
+S219033FCD02A0B40002A0B40002A0B40002A0B40002A0B4000227
+S219033FE2A0B40002A0B40002A0B40002A0B40002A0B40002A074
+S219033FF7B40002A0B40002A0B40002A0B40002A0B40002A0B44B
+S21903400C0002A0B40002A0B40002A0B40002A0B40002A0B400E9
+S21903402102A0B40002A0B40002A0B40002A0B40002A0B40002D2
+S219034036A0B40002A0B40002A0B40002A0B40002A0B40002A01F
+S21903404BB40002A0B40002A0B40002A0B40002A0B40002A0B4F6
+S2190340600002A0B40002A0B40002A0B40002A0B40002A0B40095
+S21903407502A0B40002A0B40002A0B40002A0B40002A0B400027E
+S21903408AA0B40002A0B40002A0B40002A0B40002A0B40002A0CB
+S21903409FB40002A0B400000000000000000000000000000000FA
+S2190340B4000000000000000000000000000000000000000000EF
+S2190340C9000000000000000000000000000000000000000000DA
+S2190340DE000000000000000000000000000000000000000000C5
+S2190340F3000000000000000000000000000000000000000000B0
+S2190341080000000000000000000000000000000000000000009A
+S21903411D00000000000000000000000000000000000000000085
+S21903413200000000000000000000000000000000000000000070
+S2190341470000000000000000000000000000000000000000005B
+S21903415C00000000000000000000000000000000000000000046
+S21903417100000000000000000000000000000000000000000031
+S2190341860000000000000000000000000000000000000000001C
+S21903419B00000000000000000000000000000000000000000007
+S2190341B0000000000000000000000000000000000000000000F2
+S2190341C5000000000000000000000000000000000000000000DD
+S2190341DA000000000000000000000000000000000000000000C8
+S2190341EF000000000000000000000000000000000000000000B3
+S2190342040000000000000000000000000000000000000000009D
+S21903421900000000000000000000000000000000000000000088
+S21903422E00000000000000000000000000000000000000000073
+S2190342430000000000000000000000000000000000000000005E
+S21903425800000000000000000000000000000000000000000049
+S21903426D000000000000000000000000000000FE000000FE0038
+S21903428200000040000000000000FF000000FF000000001000D1
+S2190342970001000000FA100000FA1000000000000401000000F0
+S2190342AC00000000000000000080000000000000000000000075
+S2190342C1000000000000000000000000000000000000000002DE
+S2190342D68290000282EC000000000000000000000000FFFFFF4C
+S2190342EBFF00000000000000000000000000042F240000000060
+S21903430000000000000000000000000000000000FFFFFFFEFFA6
+S219034315FFFFFE0000000000001E1400001E14000001F4000036
+S21903432A0000000000000000000000000000000000000002D2A2
+S21903433FDC0002D7840002D5700000102120423063408450A502
+S21903435460C670E781089129A14AB16BC18CD1ADE1CEF1EF1219
+S2190343693102103273225252B5429472F762D693398318B37BC8
+S21903437EA35AD3BDC39CF3FFE3DE246234430420140164E6748F
+S219034393C744A45485A56AB54B85289509E5EEF5CFC5ACD58DC1
+S2190343A8365326721611063076D766F6569546B4B75BA77A9722
+S2190343BD198738F7DFE7FED79DC7BC48C458E5688678A70840BB
+S2190343D2186128023823C9CCD9EDE98EF9AF89489969A90AB917
+S2190343E72B5AF54AD47AB76A961A710A503A332A12DBFDCBDCE3
+S2190343FCFBBFEB9E9B798B58BB3BAB1A6CA67C874CE45CC52C1D
+S219034411223C030C601C41EDAEFD8FCDECDDCDAD2ABD0B8D6846
+S2190344269D497E976EB65ED54EF43E132E321E510E70FF9FEFBA
+S21903443BBEDFDDCFFCBF1BAF3A9F598F78918881A9B1CAA1EB13
+S219034450D10CC12DF14EE16F108000A130C220E35004402570A6
+S21903446546606783B99398A3FBB3DAC33DD31CE37FF35E02B146
+S21903447A129022F332D24235521462777256B5EAA5CB95A8851B
+S21903448F89F56EE54FD52CC50D34E224C314A004817466644762
+S2190344A454244405A7DBB7FA879997B8E75FF77EC71DD73C26C0
+S2190344B9D336F2069116B06657767646155634D94CC96DF90E9E
+S2190344CEE92F99C889E9B98AA9AB584448657806682718C00819
+S2190344E3E1388228A3CB7DDB5CEB3FFB1E8BF99BD8ABBBBB9AE2
+S2190344F84A755A546A377A160AF11AD02AB33A92FD2EED0FDD77
+S21903450D6CCD4DBDAAAD8B9DE88DC97C266C075C644C453CA24D
+S2190345222C831CE00CC1EF1FFF3ECF5DDF7CAF9BBFBA8FD99F68
+S219034537F86E177E364E555E742E933EB20ED11EF00000000023
+S21903454C0000000000000000000003E800000000000000000067
+S2190345610000000000000000000000000000000000000000003D
+S21903457600000000000000000000000000000000000000000028
+S21903458B00000000000003200000031FF000031F8000023E28D4
+S2190345A000031F1400031EE400031EDC00023A4C00031ED40049
+S2190345B5031EBC00031EA000023C5000031E9800031E5400038C
+S2190345CA1E500002452400031E0800031DE400031DDC00024789
+S2190345DF8400031E4800031E1800031E100002463400031F7852
+S2190345F400031F4400031F1C000238980003183C00031824009E
+S2190346090318180002285400031810000317E8000317CC0002CE
+S21903461E2A4400031D9C00031D8800031D800002370400031DB0
+S219034633D400031DA800031DA000022F60000317C8000317ACD5
+S2190346480003179400022B3C0003178C0003177800031770007C
+S21903465D0229D000031A4400031A3800033F68000254D40003B8
+S21903467226B00003269C0000000000000001000000010000008E
+S21903468700000326C8000326BC000326B0000000010000000462
+S21903469C0000000000032704000326DC000326B00000000100F4
+S2190346B1000002000000000003361C000335F800000000000065
+S2190346C6000100000001000000000003363800033624000336CE
+S2190346DB1C00000000000000050000000000033660000336448B
+S2190346F00003361C000000000000000500000000000335C40057
+S2190347050335B0000000000000000100000002000000000003A9
+S21903471A35EC000335D000000000000000010000000100000057
+S21903472F0000022CD8000000000002CE440000000000031D48EB
+S2190347440002509800033F14000000004E800021000000000029
+S20B0347590000000000000051
 S804020100F8
index b09cd39d08160b6bf2a98b04079f7c0830a99dff..8629f1b8fe1ea93beac8b6b677a39e14cd814bb6
GIT binary patch
literal 88344
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
index 98b37c3b6b2fc98a7c85be94de209878f07a7c42..670839058e3e616a42ea16a247231647ff623d9c
GIT binary patch
literal 315808
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
--- a/packages/hal/powerpc/mbx/current/images/redboot_ROM.srec
+++ b/packages/hal/powerpc/mbx/current/images/redboot_ROM.srec
@@ -395,24 +395,24 @@ S31AFE002015600400606300007C0004AC7C788B
 S31AFE00202A00004C00012C7C708BA64C00012C7C70C2A664632053
 S31AFE00203F007C70C3A67C78C2A6646320007C78C3A63C600000F7
 S31AFE002054606330027C0004AC7C6001247C0004AC3C4000006049
-S31AFE00206942B8F87C631A787C7C43A67C8422787C9D43A6480036
-S31AFE00207E46F93C20000060214A307C3043A63C60FE00606300C1
+S31AFE00206942BB487C631A787C7C43A67C8422787C9D43A64800E3
+S31AFE00207E49B13C20000060214C807C3043A63C60FE00606300B4
 S31AFE002093003C800000608400003CA0FE0060A51F347C0328407B
 S31AFE0020A8418200203863FFFC3884FFFC38A5FFFC8403000494F8
 S31AFE0020BD0400047C0328404180FFF43C60FE00606321E43C8049
 S31AFE0020D20000608430003884FFFC38A000209464000438A5FF5A
 S31AFE0020E7FF2C0500004082FFF43C60FE00606322EC3C800000D4
-S31AFE0020FC6084300090640014906400243C60FE01606343E03CDA
-S31AFE002111800000608433003CA0000060A539087C042840418251
+S31AFE0020FC6084300090640014906400243C60FE01606350C03CED
+S31AFE002111800000608433003CA0000060A53B587C0428404182FF
 S31AFE002126001C800300009004000038630004388400047C042866
-S31AFE00213B404180FFEC3C60000060633A303C80000160841F3CDA
+S31AFE00213B404180FFEC3C60000060633C803C800001608425A816
 S31AFE002150380000007C0320404182001490030000386300047CDA
-S31AFE0021650320404180FFF43C600000606339083C80000060840A
-S31AFE00217A3A2C7C0320404182001490030000386300047C03205F
+S31AFE0021650320404180FFF43C60000060633B583C8000006084B8
+S31AFE00217A3C7C7C0320404182001490030000386300047C03200D
 S31AFE00218F404180FFF43821FFF438000000900100009001000895
-S31AFE0021A49421FFC848004155480045A948003C553C60000060BD
-S31AFE0021B96330327C0004AC7C6001247C0004AC48003CA948007A
-S31AFE0021CE3B7948003CE9480061D948008B814800040548000068
+S31AFE0021A49421FFC84800440D4800486148003F0D3C600000608C
+S31AFE0021B96330327C0004AC7C6001247C0004AC48003F614800BF
+S31AFE0021CE3E2D48003FA14800646548008E0148000405480000E4
 S31AFE0021E3003821FF64906100989081008090A100883C600000B8
 S31AFE0021F8606330327C0004AC7C6001247C0004AC7C7142A690EB
 S31AFE00220D61000C7C9242A6908100107CB342A690A10014900147
@@ -425,7 +425,7 @@ S31AFE00228B6C9381007093A1007493C1007893
 S31AFE0022A091E1003C7C6102A67C8902A67CBA02A67CDB02A690D8
 S31AFE0022B56100849081008C90A1009490C100907C230B7838216D
 S31AFE0022CAFFC83800000090010000900100089421FFC83CA0FE7C
-S31AFE0022DF0060A5247C7CA803A648003ABC3821FF6490610098F1
+S31AFE0022DF0060A5247C7CA803A648003D703821FF64906100983A
 S31AFE0022F49081008090A100883C600000606330327C0004AC7C1E
 S31AFE0023096001247C0004AC7C7142A69061000C7C9242A6908131
 S31AFE00231E00107CB342A690A1001490010000904100087C230B26
@@ -436,13 +436,13 @@ S31AFE002372004C9281005092A1005492C10058
 S31AFE0023876093210064934100689361006C9381007093A10074FD
 S31AFE00239C93C1007893E1007C91C1003891E1003C7C6102A67C33
 S31AFE0023B18902A67CBA02A67CDB02A6906100849081008C90A1C2
-S31AFE0023C6009490C100907C2E0B783C60000060634A303C8000C7
-S31AFE0023DB0060843A307CA408514180000C7CA118514181000805
+S31AFE0023C6009490C100907C2E0B783C60000060634C803C800075
+S31AFE0023DB0060843C807CA408514180000C7CA1185141810008B3
 S31AFE0023F07C611B7895C1FFFC3821FFC83800000090010000909A
 S31AFE0024050100089421FFC881EE009855EFB7FF418200183DE040
 S31AFE00241AFF0061EF001C89EF000055EFF0BE39EF000191EE002C
-S31AFE00242F9855EF103A3C600000606339B891C30000806E009844
-S31AFE0024443CC0000060C633587CC6782E3C800000608434447C56
+S31AFE00242F9855EF103A3C60000060633C0891C30000806E0098F1
+S31AFE0024443CC0000060C633A87CC6782E3C800000608434947CB6
 S31AFE00245984782E7CC903A64E800421802100703821FFC83800F6
 S31AFE00246E000090010000900100089421FFC83821007080610005
 S31AFE002483848081008880A1008C7C6103A67C8803A67CA903A685
@@ -455,11 +455,11 @@ S31AFE002501C1007883E1007C7C0000A6386000
 S31AFE00251604AC7C0001247C0004AC800100008041000880610004
 S31AFE00252B808081009480A100907C6FF1207C9A03A67CBB03A636
 S31AFE0025408061000C8081001080A10014802100047C0004AC4C32
-S31AFE00255500012C4C0000647C230B783C80000060844A30388498
+S31AFE00255500012C4C0000647C230B783C80000060844C80388446
 S31AFE00256AFFE87C8123789061000C7C6000A6906100107C680273
 S31AFE00257FA6906100143800000090010000900100087C0000A614
 S31AFE00259460638000506004207C0004AC7C0001247C0004AC948A
-S31AFE0025A921FFC848007C3D38210038806100147C6803A680A1FC
+S31AFE0025A921FFC848007EBD38210038806100147C6803A680A17A
 S31AFE0025BE000C806100107C0000A6506004207C0004AC7C000168
 S31AFE0025D3247C0004AC7CA12B784E8000209421FED87C0802A63A
 S31AFE0025E89321010C93410110936101149381011893A1011C931A
@@ -467,3560 +467,3745 @@ S31AFE0025FDC1012093E101249001012C3FA000
 S31AFE00261200343860FFFF7D2803A63B8000003BE000013F400041
 S31AFE002627004E800021813D00347C7E1B78386000007D2803A646
 S31AFE00263C3F6000003F2000004E800021801D00483C60000360B4
-S31AFE002651630D407C0803A63D2000003D6000009389390893EBBE
-S31AFE00266639284E8000213C0000403C60FE013C80FE013CA0FE5F
-S31AFE00267B01901B390C38631E2438841E5438A51E60939A392465
-S31AFE002690480091B53C60FE013C80FE013CA0FE013CC0FE01383F
-S31AFE0026A5C61EA038631E6C38841E8438A51E94480091913C6080
-S31AFE0026BAFE0138631EA448009185809A392480BB390C3C60FEBC
-S31AFE0026CF0138631EC8480091713D2000003D600000380938E8CB
-S31AFE0026E43BAB38D87C1D00003D2000009389391C418200207C21
-S31AFE0026F91C0378813D00003BBD00087D2803A64E8000217C1D9D
-S31AFE00270EE0004082FFEC3F800000837C39302C1B0000418200F4
-S31AFE0027234C3FA00000809D39103C60FE0138631ED448009111FA
-S31AFE00273880BD39103D2000003BA000001CA503E893A939303841
-S31AFE00274D61000838800100480097612C03FFFE4082000C93BCC8
-S31AFE002762393048000008937C39307FFDFB787F3CCB787FDBF3F3
-S31AFE002777782C1D0000418200143C60FE0138631F10480090BDB7
-S31AFE00278C3BA00000386100083880010038A000FA480097192C09
-S31AFE0027A10300004080001C3D200000800939342C0000004182FE
-S31AFE0027B6FFC44800B4C14BFFFFBC40820020393C320080090073
-S31AFE0027CB347F63DB787C0803A64E800021480075614BFFFF9C6D
-S31AFE0027E0386100084800911D2C0300004081004C3FA000003FEF
-S31AFE0027F540000138610008389D392038BA1A1C48009C157C63BB
-S31AFE00280A1B794182001C8003000C807D3920389A1A1C7C0803CE
-S31AFE00281FA64E800021480000143C60FE0138631F1C388100087D
-S31AFE002834480090113BA000014BFFFF3C9421FFF07C0802A693DE
-S31AFE002849E1000C900100142C0300027C9F237840820144807FF7
-S31AFE00285E00043C80FE0138841F3C480091292C03000040820098
-S31AFE002873447D6000A67D605B7839200000512004207C00012446
-S31AFE0028883C0002004C00012C7C108BA64C00012C3D4002007C4F
-S31AFE00289D0004AC7D588BA67C0000A6516004207C00012448008C
-S31AFE0028B200F8807F00043C80FE0138841F40480090D12C030064
-S31AFE0028C700408200C07D6000A67D605B78392000005120042055
-S31AFE0028DC7C00012439200000380000807C0903A6612010003D35
-S31AFE0028F1400E007C0004AC7D398BA67D588BA67C198BA67D58CC
-S31AFE0029068BA6392900104200FFE03C0004004C00012C7C108B24
-S31AFE00291BA64C00012C3D4004007C0004AC7D588BA63920000078
-S31AFE002930380000807C0903A6612010003D400E007C0004AC7DE3
-S31AFE002945398BA67D588BA67C198BA67D588BA639290010420089
-S31AFE00295AFFE03C000C004C00012C7C108BA64C00012C3D400C05
-S31AFE00296F007C0004AC7D588BA67C0000A6516004207C00012485
-S31AFE002984480000243C60FE01809F000438631F4448008EB14843
-S31AFE0029990000103C60FE0138631F5C48008EA1800100147C08D4
-S31AFE0029AE03A683E1000C382100104E8000209421FFE87C08027E
-S31AFE0029C3A693A1000C93C1001093E100149001001C3D600000DF
-S31AFE0029D83D200000392938183BEB37A87C1F48004182002C7D83
-S31AFE0029ED3D4B783FC0FE01809F000480BF000080DF0008387E54
-S31AFE002A021F6848008E413BFF00107C1FE8004082FFE48001002A
-S31AFE002A171C7C0803A683A1000C83C1001083E1001438210018F0
-S31AFE002A2C4E8000209421FFA87C0802A69381004893A1004C93AC
-S31AFE002A41C1005093E100549001005C7C7D1B787C9C23783D201A
-S31AFE002A56FE0139291F78386100083880006238A0000138C000E3
-S31AFE002A6B0038E100383901003C48009CCD3D20FE0139291F8875
-S31AFE002A80386100203880006C38A0000138C0000038E1004039FD
-S31AFE002A9501004448009CA93D40FE017FA3EB787F84E378394A74
-S31AFE002AAA1EA038A0000138C1000838E0000239000000392000CF
-S31AFE002ABF0048009C9D2C030000418200408001003C2C00000062
-S31AFE002AD4408200143C60FE0138631F9048008D65480000248008
-S31AFE002AE90100442C0000004082000C380000209001004080618B
-S31AFE002AFE003880810040480098198001005C7C0803A68381003F
-S31AFE002B134883A1004C83C1005083E10054382100584E80002006
-S31AFE002B289421FFB87C0802A69381003893A1003C93C100409319
-S31AFE002B3DE100449001004C3D2000008009392C7C7D1B787C9C8E
-S31AFE002B5223783D20FE019001002839291FA83861000838800038
-S31AFE002B677738A0000138C0000038E100203901002448009BC9CA
-S31AFE002B7C3D40FE017FA3EB787F84E378394A1FB838A000013876
-S31AFE002B91C1000838E00001390100283920000048009BBD2C03BF
-S31AFE002BA60000418200F8800100242C000000418200343C60FEF9
-S31AFE002BBB018081002880A1002038631FCC48008C7D80A100207E
-S31AFE002BD0386100301CA503E838800008480092D92C03FFFE4197
-S31AFE002BE58200BC814100287D6000A67D605B78392000005120B2
-S31AFE002BFA04207C00012439200000380000807C0903A66120102D
-S31AFE002C0F003D600E007C0004AC7D398BA67D788BA67C198BA602
-S31AFE002C247D788BA6392900104200FFE03C0004004C00012C7CA9
-S31AFE002C39108BA64C00012C3D6004007C0004AC7D788BA639207C
-S31AFE002C4E0000380000807C0903A6612010003D600E007C0004CB
-S31AFE002C63AC7D398BA67D788BA67C198BA67D788BA63929001041
-S31AFE002C784200FFE03C000C004C00012C7C108BA64C00012C3DEE
-S31AFE002C8D600C007C0004AC7D788BA67D4803A64E800021800192
-S31AFE002CA2004C7C0803A68381003883A1003C83C1004083E1001C
-S31AFE002CB744382100484E8000209421FFE07C0802A693A1001429
-S31AFE002CCC93C1001893E1001C90010024380000003D2000003F6A
-S31AFE002CE1C000003BA9393090093930901E391C48000A992C03AE
-S31AFE002CF60000418200EC3D200000808939443D600000800B39D2
-S31AFE002D0B403D2000003BE97A247C8422147C8400507FE3FB78F5
-S31AFE002D2038A004004800831D7FE3FB78388003FC480004F98085
-S31AFE002D351F03FC7C030000408200303D20000081697A243C00D5
-S31AFE002D4A0BAD6000FACE7C0B000040820018813F03F83C00DE5A
-S31AFE002D5FAD6000DEAD7C090000418200283C60FE0138632E806F
-S31AFE002D7448008AD13C60000038637A243880000038A0040048F2
-S31AFE002D89008391480000583C60FE0138632C683881000838A01A
-S31AFE002D9E000148000061800100082C000000418200303C60FE30
-S31AFE002DB30138632C807FA4EB7838A00004480000413C60FE0139
-S31AFE002DC83C80000038632CA83884391038A0000248000029383F
-S31AFE002DDD000001901E391C800100247C0803A683A1001483C18B
-S31AFE002DF2001883E1001C382100204E8000209421FFD87C0802B7
-S31AFE002E07A69321000C93410010936100149381001893A1001CE4
-S31AFE002E1C93C1002093E100249001002C3D2000003D6000003B9F
-S31AFE002E314938D87C7B1B787C9D23787CB92B783BCB381848007B
-S31AFE002E4609452C0300003B800004418200CC7C1ED0004182007B
-S31AFE002E5BB43D20000039297A24807E00007FFC4A147F64DB7840
-S31AFE002E7048008AB92C0300004082007C807E00107C03C80040BC
-S31AFE002E8582005C3803FFFF280000054181008C3D60FE01396B62
-S31AFE002E9A2E685400103A7D4B002E3D20FE0139292E687D4A4A90
-S31AFE002EAF147D4903A64E800420801F0000901D00004800005CA5
-S31AFE002EC4A01F0004813F0000B01D0004913D00004800004893B0
-S31AFE002ED9FD0000480000403C60FE0138632E187F64DB78480061
-S31AFE002EEE89594800002C807E00103BDE0018480002DD7C1ED0A5
-S31AFE002F03007F9C1A144082FF543C60FE0138632E447F64DB7879
-S31AFE002F184800892D8001002C7C0803A68321000C8341001083C1
-S31AFE002F2D6100148381001883A1001C83C1002083E10024382175
-S31AFE002F4200284E8000209421FBB87C0802A69301042893210454
-S31AFE002F572C93410430936104349381043893A1043C93C10440A5
-S31AFE002F6C93E104449001044C3D2000003D6000003B0938183BE6
-S31AFE002F812B38D87C7C1B787C9B2378480007FD2C0300003B40C9
-S31AFE002F9600007F1FC3783BC00004418202083C80000038847A8B
-S31AFE002FAB243861000838A004004800808D3BA104083D60000092
-S31AFE002FC03D20FE01934B393039292D787FA3EB783880006C386D
-S31AFE002FD5A0000038C0000238E10420390000004800975D3D401A
-S31AFE002FEAFE017F83E3787F64DB787FA6EB78394A24A838A0008D
-S31AFE002FFF0138E000013900000039200000480097512C030000AE
-S31AFE003014418201947C1FC800418200A480A104207FE3FB787FE8
-S31AFE003029C4F3784800026538030001280000054181FFE03D6009
-S31AFE00303EFE01396B2E005400103A7D4B002E3D20FE0139292E28
-S31AFE003053007D4A4A147D4903A64E8004203C60000038637A2409
-S31AFE0030683881000838A0040048007FD1480001343B40000180A1
-S31AFE00307D7F00103BFF0018480001557FDE1A144BFFFF8C7FE9F3
-S31AFE003092C2783129FFFF7D294910381FFFE87C0048787FE9486A
-S31AFE0030A7387D3F03784BFFFF6C3C60FE0138632D904800878D9D
-S31AFE0030BC4BFFFF5C2C1A0000418200E43C000BAD3D6000006078
-S31AFE0030D100FACE3D20DEAD3B8B7A246129DEAD900B7A24913CB7
-S31AFE0030E603F87F83E378388003FC480001393D2000003FE000C4
-S31AFE0030FB00801F394481693940907C03FC7C0002143C60FE0105
-S31AFE0031107FC0585038632DA4480092292C030000418200888056
-S31AFE0031259F39443BA104247FC3F3787FA5EB784800B8097C7F39
-S31AFE00313A1B794182002C83A104247FE3FB784800BB117C661BC7
-S31AFE00314F783C60FE01386327247FA4EB787FE5FB78480086E55E
-S31AFE003164480000447FC3F3787F84E3787FA6EB7838A00400480F
-S31AFE00317900B9357C7F1B794182002883A104247FE3FB7848006C
-S31AFE00318EBACD7C661B783C60FE0138632DD07FA4EB787FE5FB14
-S31AFE0031A378480086A18001044C7C0803A6830104288321042CAA
-S31AFE0031B883410430836104348381043883A1043C83C10440833B
-S31AFE0031CDE10444382104484E8000203803FFFF280000054D81F9
-S31AFE0031E200203D60FE01396B2D605400103A7D4B002E3D20FEF8
-S31AFE0031F70139292D607D4A4A147D4903A64E80042038600004AD
-S31AFE00320C4E800020386000084E800020386000004E800020386F
-S31AFE0032216002004E800020388400035484F0BE7C8023782C003C
-S31AFE003236000038C0000038E000003884FFFF40810044816300CC
-S31AFE00324B007C8A23787D68383038E7000168E900102C0A0000C5
-S31AFE0032607D2AFE707D404A787C0050507D6B43787C00FE707C9C
-S31AFE003275C65A78386300047CE700383884FFFF4181FFC47CC3F0
-S31AFE00328A33784E8000209421FF707C0802A6930100709321008A
-S31AFE00329F74934100789361007C9381008093A1008493C10088BE
-S31AFE0032B493E1008C900100947C7B1B78807B00087C9F23782C6D
-S31AFE0032C90300007CB82B78418200383881006038A000014BFFDB
-S31AFE0032DEFB25801B000C2C00000041820014800100602C000000
-S31AFE0032F3004182019848000010800100602C00000040820188B6
-S31AFE0033083D20000039297A243C60FE01809B00047FBF4A1438C1
-S31AFE00331D632CBC48008525813B00103809FFFF28000005418160
-S31AFE00333201483D60FE01396B2D305400103A7D4B002E3D20FEAD
-S31AFE0033470139292D307D4A4A147D4903A64E800420801D00008A
-S31AFE00335C2C000000418200103D20FE0138892CC8480000303D93
-S31AFE00337120FE0138892CD0480000243C60FE01809D00003863A8
-S31AFE0033862CD8480084BD480000EC7FA3EB784800ACED7C641B0C
-S31AFE00339B783C60FE0138632CC4480084A1480000D07FBEEB7856
-S31AFE0033B03BE000003F80FE013FA0FE017C9EF8AE387C2CDC4889
-S31AFE0033C5008481281F00044181000C387D2CE4480084713BFF95
-S31AFE0033DA0001281F00054081FFDC3C60FE017FDDF37838632CC8
-S31AFE0033EFE848008455480000843C60FE0138632CEC48000088D2
-S31AFE0034043C60FE0138632CF048008439881D00007FBEEB782CE7
-S31AFE0034190000007FBFEB78418200583F20FE013B4000003B804A
-S31AFE00342E000A881E00002C00000A418200187FEBFB788C0B0050
-S31AFE003443012C00000A4082FFF87D7F5B787FC4F3789B5F000009
-S31AFE00345838792CF4480083E93BDF00019B9F0000881E00007F5C
-S31AFE00346DDFF3782C0000004082FFBC2C180000418200183C6098
-S31AFE003482FE0138632CF0480083BD386000024800022C801B0048
-S31AFE003497102C00000441820054386100083880005038A0000044
-S31AFE0034AC48008A092C0300003860FFFF418002043861000848B7
-S31AFE0034C10084412C0300004182FFC4880100082C00002E4082CB
-S31AFE0034D6000C38600000480001E02C00005E4082000C38600020
-S31AFE0034EB03480001D0813B00103809FFFF28000005418101BCF5
-S31AFE0035003D60FE01396B2D485400103A7D4B002E3D20FE0139D4
-S31AFE003515292D487D4A4A147D4903A64E80042083FD0000386160
-S31AFE00352A00087FA4EB78480096F54800003083FD000038610096
-S31AFE00353F087FA4EB7838A0000038C00000480095694800001473
-S31AFE00355483FD0000386100087FA4EB784800A9B92C030000419D
-S31AFE00356982013C801D00007FE002787C09FE707D2302787C6328
-S31AFE00357E48507C63FE707C6018F8546307FE540007BC7C6303AE
-S31AFE0035937848000128801D0000A17D00049001005839210058DC
-S31AFE0035A8B1690004380100087D3A4B78900100683BC000003FFE
-S31AFE0035BD60FE013BE100643B810068806100687FE4FB787F85CF
-S31AFE0035D2E37838DB2CE4480094DD2C030000418200B4881F005C
-S31AFE0035E7037C1DF1AE3BDE0001281E00054081FFD4480000C08F
-S31AFE0035FC3C60FE017FBEEB7838632CFC4800823D48000044889D
-S31AFE0036110100083BE100082C000000418200287FC4F3787FEB44
-S31AFE003626FB78880B0000980400008D2B0001388400012C09003E
-S31AFE00363B004082FFEC7C9E23783800000A981E00003BDE000102
-S31AFE003650380000003C60FE01981E000038632D28480081E53802
-S31AFE0036656100083880005038A00000480088452C030000386027
-S31AFE00367AFFFF41800040386100084800827D2C0300004082FF60
-S31AFE00368F8448000028A01A000481210058B01D0004913D0000D7
-S31AFE0036A438600004480000143C60FE0138632CEC480081913835
-S31AFE0036B9600001800100947C0803A68301007083210074834185
-S31AFE0036CE00788361007C8381008083A1008483C1008883E100AF
-S31AFE0036E38C382100904E8000209421FFF07C0802A693C100083F
-S31AFE0036F893E1000C900100147C7E1B782C1E00017C9F237841C5
-S31AFE00370D8100143C60FE0138632C28480012B548000054480091
-S31AFE00372200692C030000418200483C6000003C80000080BF0054
-S31AFE0037370438633738388437A848008E3D7C631B794182001C6B
-S31AFE00374C8003000C7FC3F3787FE4FB787C0803A64E80002148EE
-S31AFE0037610000103C60FE0138632C3C48001261800100147C08CD
-S31AFE00377603A683C1000883E1000C382100104E8000209421FFCA
-S31AFE00378BE07C0802A6934100089361000C9381001093A10014D1
-S31AFE0037A093C1001893E1001C900100243D200000800933002C1A
-S31AFE0037B50000004082009C3FE00000807F390C38000001900968
-S31AFE0037CA33003C63FFFF3C8000014800B0557C641B79418200D5
-S31AFE0037DF183C60FE0138632BD44800805D386000004800006817
-S31AFE0037F43F6000003F40000038600000389B393C38BA3940480B
-S31AFE00380900B0C93FA000003F800000387D3944389C39484800C0
-S31AFE00381EB0E9809B393C80BA394080DC39483C60FE0180FD3987
-S31AFE0038334438632BFC4800800D813D3944801F390C3D2900011B
-S31AFE0038487C0900503D600000900B394C38600001800100247C1B
-S31AFE00385D0803A6834100088361000C8381001083A1001483C155
-S31AFE003872001883E1001C382100204E8000209421FFE07C080224
-S31AFE003887A693A1001493C1001893E1001C900100243D40FE010D
-S31AFE00389C394A2B8438A0000238C0000038E0000039010008397C
-S31AFE0038B120000148008EA92C030000408200143C60FE01386323
-S31AFE0038C6291C48001105480000E03D6000003D20000080A939C2
-S31AFE0038DB44808B39403FA00000807D394C7C8520504800775526
-S31AFE0038F083BD394C3BC000003BE000004800000C3BFF00013B1A
-S31AFE003905BD01003D200000800939445400C23E7C1F0040408099
-S31AFE00391A0028881D00002C0000FF4182FFDC806100087FA4EB07
-S31AFE00392F7848007FF92C0300004082FFC83BC000012C1E000049
-S31AFE003944408200183C60FE018081000838632BA448007EF14883
-S31AFE0039590000543D20000080093924807D00147C03004041802D
-S31AFE00396E001C80BD00183D2000008169390C7C032A147C0058B2
-S31AFE00398340418000143C60FE0138632BBC48007EB5480000181E
-S31AFE003998809D0010480076A5801D001C3D2000009009392C80F2
-S31AFE0039AD0100247C0803A683A1001483C1001883E1001C382142
-S31AFE0039C200204E8000209421FFD87C0802A6934100109361004E
-S31AFE0039D7149381001893A1001C93C1002093E100249001002C7E
-S31AFE0039EC3D40FE01394A2B8438A0000238C0000038E0000039F1
-S31AFE003A010100083920000148008D552C030000408200143C607E
-S31AFE003A16FE013863291C48000FB1480001843D6000003D2000E9
-S31AFE003A2B0080A93944800B39403FA000007F650050807D394C43
-S31AFE003A407F64DB78480075FD83DD394C3BA000003BDE02003B67
-S31AFE003A55E000024800000C3BFF00013BDE01003F400000801AB4
-S31AFE003A6A39445400C23E7C1F004040800040881E00002C0000C5
-S31AFE003A7FFF4182FFDC806100087FC4F37848007E9D2C03000068
-S31AFE003A944082FFC83C60FE018081000838632B904800889D2CFD
-S31AFE003AA9030000418200F83BA000012C1D0000408200183C60AB
-S31AFE003ABEFE018081000838632BA448007D7D480000D83B81005F
-S31AFE003AD30C807E0010809E00187F85E3784800AE5D7C7F1B7949
-S31AFE003AE84182002883A1000C7FE3FB784800B1657C661B783CC6
-S31AFE003AFD60FE0138632B247FA4EB787FE5FB7848007D397FC3CA
-S31AFE003B12F378388000FF38A00100480075FD809A39447F63DB91
-S31AFE003B27787F85E3784800AE117C7F1B794182002C83A1000CF9
-S31AFE003B3C7FE3FB784800B1197C661B783C60FE0138632B247F10
-S31AFE003B51A4EB787FE5FB7848007CED480000483D2000008089D6
-S31AFE003B66394C80BA39447F63DB787F86E3784800AF397C7F1B2F
-S31AFE003B7B794182002883A1000C7FE3FB784800B0D17C661B788A
-S31AFE003B903C60FE0138632B447FA4EB787FE5FB7848007CA58031
-S31AFE003BA501002C7C0803A683410010836100148381001883A1A1
-S31AFE003BBA001C83C1002083E10024382100284E8000209421FFC7
-S31AFE003BCFA07C0802A69381005093A1005493C1005893E1005CA9
-S31AFE003BE490010064380000007C7D1B787C9C23783D20FE019070
-S31AFE003BF9010044392928C09001003C386100083880006638A0C0
-S31AFE003C0E000138C0000038E100383901003C48008B253D20FE8A
-S31AFE003C230139292B68386100203880006C38A0000138C00000E4
-S31AFE003C3838E100403901004448008B013D40FE017FA3EB787F48
-S31AFE003C4D84E378394A24A838A0000238C1000838E00002390002
-S31AFE003C6200003920000048008AF52C030000408200143C60FE8A
-S31AFE003C77013863291C48000D51480001048001003C2C00000077
-S31AFE003C8C41820010800100442C000000408200143C60FE0138B2
-S31AFE003CA1632B7048000D29480000DC806100384800ABDD7C7C89
-S31AFE003CB61B794082002080610038800100407C6302143863FF16
-S31AFE003CCBFF4800ABC17C7C1B794182004483A100387F83E378E1
-S31AFE003CE04800AF797C651B783C60FE01386329787FA4EB784842
-S31AFE003CF5007B513D2000003D6000003C60FE018089393C80ABAC
-S31AFE003D0A39403863299848007B35480000708081003880010061
-S31AFE003D1F407C8323787C8402143884FFFF4800B1112C030000A8
-S31AFE003D34418200143C60FE0138632AA848007B054800004080C7
-S31AFE003D496100388081004038A100484800ABE97C7C1B7941823B
-S31AFE003D5E002883A100487F83E3784800AEF17C661B783C60FE65
-S31AFE003D730138632B247FA4EB787F85E37848007AC580010064FB
-S31AFE003D887C0803A68381005083A1005483C1005883E1005C3895
-S31AFE003D9D2100604E8000209421FF187C0802A6934100D093610E
-S31AFE003DB200D4938100D893A100DC93C100E093E100E49001000B
-S31AFE003DC7EC380000007C7D1B787C9C23783D20FE01900100C4CF
-S31AFE003DDC392928849001009C900100A4900100AC900100B4904C
-S31AFE003DF10100BC386100083880006238A0000138C0000038E157
-S31AFE003E0600983901009C480089353D20FE013929289838610018
-S31AFE003E1B203880007238A0000138C0000038E100A0390100A4DC
-S31AFE003E30480089113D20FE01392928AC386100383880006538DF
-S31AFE003E45A0000138C0000038E100A8390100AC480088ED38E14E
-S31AFE003E5A00B03D20FE017CFE3B78392928C0386100503880002B
-S31AFE003E6F6638A0000138C00000390100B4480088C53D20FE0124
-S31AFE003E84392928DC386100683880006C38A0000138C000003891
-S31AFE003E99E100B8390100BC480088A13D20FE01392928F438619D
-S31AFE003EAE00803880007338A0000138C0000038E100C03901006C
-S31AFE003EC3C44800887D3D40FE017FA3EB787F84E378394A2910BA
-S31AFE003ED838A0000238C1000838E00006390100C8392000014834
-S31AFE003EED0088712C030000408200143C60FE013863291C4800FB
-S31AFE003F020ACD480004988001009C2C0000004182001C80010042
-S31AFE003F17BC2C00000041820010800100C82C000000408200148B
-S31AFE003F2C3C60FE013863293048000A9948000464800100C4818C
-S31AFE003F414100B82C00000040820008914100C03D200000800900
-S31AFE003F563944816100C07D2A02143929FFFF7D2903963F400058
-S31AFE003F6B007D2901D67C095840912100B8408000143C60FE01CA
-S31AFE003F803863294C480078C148000414800100B42C0000004195
-S31AFE003F95820070806100B04800A8F17C7C1B7940820020806160
-S31AFE003FAA00B0800100C07C6302143863FFFF4800A8D57C7C1BA7
-S31AFE003FBF794182004483A100B07F83E3784800AC8D7C651B7843
-S31AFE003FD43C60FE01386329787FA4EB78480078653D2000003DB8
-S31AFE003FE96000003C60FE018089393C80AB3940386329984800FE
-S31AFE003FFE78494800039C3FE0000080810098801F39247C0400CE
-S31AFE004013404180001C800100C03D2000008169390C7C04021414
-S31AFE0040287C005840418000283C60FE01386329B44800780D3D65
-S31AFE00403D2000003C60FE01809F392480A9390C38632998480021
-S31AFE00405277F5806100C8480078A92803000F408100183C60FE2A
-S31AFE00406701386329E038800010480077D548000328800100B497
-S31AFE00407C2C0000004082002C808100B87FC3F378480003392CFB
-S31AFE004091030000408200183C60FE01808100B838632A104800C8
-S31AFE0040A677A1480002F43F8000003D20000080BC394480093914
-S31AFE0040BB403FA000007F650050807D394C7F64DB7848006F75B5
-S31AFE0040D0801C394483FD394C5409C23F3BA000003B8000004184
-S31AFE0040E58200883FC0FE01881F00002C0000FF418200608061E4
-S31AFE0040FA00C87FE4FB78480078292C0300004082004C80010068
-S31AFE00410FB42C00000041820014813F0010800100B07C0900005A
-S31AFE00412440820214813F0018800100B87C0900004082021480BC
-S31AFE0041398100C8387E2A8C480082012C030000418202543B80EA
-S31AFE00414E00014800001C801A39443BBD00015400C23E7C1D00F6
-S31AFE004163403BFF01004180FF842C1C0000814100C0806100B029
-S31AFE0041784082004C3D200000800939443D6000005400C23E7C50
-S31AFE00418D1C004083EB394C3BA000004800001C3D2000008009A5
-S31AFE0041A239443BBD00015400C23E7C1D00403BFF010040800066
-S31AFE0041B710881F00002C0000FF4082FFDC7C8352143884FFFF51
-S31AFE0041CC4800AC712C030000418200143C60FE0138632AA8481F
-S31AFE0041E1007665480001B838A100CC806100B0808100B87CBEC0
-S31AFE0041F62B784800A7457C7C1B793BA000014182002C83A1005E
-S31AFE00420BCC7F83E3784800AA497C661B783C60FE017FA4EB78A0
-S31AFE00422038632ADC7F85E3784800761D3BA000002C1D00004145
-S31AFE004235820044806100B08081009880A100C07FC6F3784800A7
-S31AFE00424AA8657C7C1B794182002883A100CC7F83E3784800A999
-S31AFE00425FFD7C661B783C60FE0138632B007FA4EB787F85E3788E
-S31AFE004274480075D17FE3FB783880000038A0010048006E958072
-S31AFE0042898100C87FE3FB78480076CD800100A4812100B02C00D0
-S31AFE00429E0000913F001040820020800100B42C00000041820021
-S31AFE0042B30C812100B0480000108121009848000008812100A070
-S31AFE0042C8800100AC913F00142C000000408200103D20000080F1
-S31AFE0042DD09392C48000008800100A8901F001C800100B83D2080
-S31AFE0042F2000080893944901F00187F63DB787FC5F3784800A694
-S31AFE004307397C7C1B794182004C83A100CC7F83E3784800A9414A
-S31AFE00431C7C661B783C60FE0138632B247FA4EB787F85E3784861
-S31AFE004331007515480000683C60FE0138632A3848007505480097
-S31AFE00434600583C60FE0138632A64480074F5480000483D2000A4
-S31AFE00435B008089394C80BA39447F63DB787FC6F3784800A741EF
-S31AFE0043707C7C1B794182002883A100CC7F83E3784800A8D97C2B
-S31AFE004385661B783C60FE0138632B447FA4EB787F85E378480054
-S31AFE00439A74AD800100EC7C0803A6834100D0836100D4838100FF
-S31AFE0043AFD883A100DC83C100E083E100E4382100E84E80002082
-S31AFE0043C43D20000080E939443D600000814B393C3D2000007CE6
-S31AFE0043D9073A14810939407D4A02147D4953787C094040408040
-S31AFE0043EE007054E0F0BE7C0603785407103A800A00002C00FF0D
-S31AFE004403FF4182004C7C095000418200147C0950507C001670BF
-S31AFE0044187C002040408000587D4953787C0940404080002054CD
-S31AFE00442DCB103A7D295A147C09404040800010800900002C00C3
-S31AFE004442FFFF4082FFEC7D2A4B78480000087D4A3A147C0A4021
-S31AFE004457404180FFA47C095000418200207C0950507C001670C9
-S31AFE00446C7C0020404180001091230000386000014E8000203817
-S31AFE0044816000004E8000209421FFE07C0802A69361000C938100
-S31AFE004496001093A1001493C1001893E1001C900100243D2000A7
-S31AFE0044AB00800939443D600000814B393C3D20000083C93940F2
-S31AFE0044C07C0002147FEA02147C1FF0407FE4FB783F6000004052
-S31AFE0044D58000883F80FE013FA00000801F00002C00FFFF41829D
-S31AFE0044EA005C7C04F80041820010387C286C7FE5FB7848007338
-S31AFE0044FF497C1FF0407FE4FB7840800034801F00002C00FFFFFD
-S31AFE00451441820028801D39445400F0BE5409103A7C844A147C06
-S31AFE00452904F04040800010800400002C00FFFF4082FFEC7C9FFF
-S31AFE00453E237848000014801B39445400F0BE5400103A7FFF0235
-S31AFE004553147C1FF0404180FF887C04F800418200143C60FE013E
-S31AFE0045683863286C7FE5FB78480072D5800100247C0803A68350
-S31AFE00457D61000C8381001083A1001483C1001883E1001C382137
-S31AFE00459200204E8000209421FFE87C0802A69381000893A100EA
-S31AFE0045A70C93C1001093E100149001001C3FA000003D2000001A
-S31AFE0045BC81693940801D39443C60FE017FE05850386327FC48C1
-S31AFE0045D1007275801D39443BC000005409C23F3F8000004182F5
-S31AFE0045E600547FFDFB787FDFF3787F9EE3783F80FE01881D00D5
-S31AFE0045FB002C0000FF4182002080BD001080DD001480FD001846
-S31AFE004610811D001C387C28407FA4EB7848007229801E39443BFC
-S31AFE004625FF00015400C23E7C1F00403BBD01004180FFC480014F
-S31AFE00463A001C7C0803A68381000883A1000C83C1001083E1002A
-S31AFE00464F14382100184E8000209421FFB87C0802A69321002C67
-S31AFE00466493410030936100349381003893A1003C93C10040932E
-S31AFE004679E100449001004C7C7D1B787C9C23783BE000003D206F
-S31AFE00468EFE013929269893E10020386100083880006638A000C9
-S31AFE0046A30038C0000238E1002039000000480080913D40FE01BD
-S31AFE0046B87FA3EB787F84E378394A24A838A0000238C1000838A4
-S31AFE0046CDE000013900000039200000480080852C030000418222
-S31AFE0046E202C03C60FE01386326C448007C552C030000408200D3
-S31AFE0046F7143C60FE01386326F4480071454800029C3C60FE01C7
-S31AFE00470C3863270048007135800100202C0000004182006C3DAB
-S31AFE004721200000808939483D600000800B39443D200000388417
-S31AFE004736FFFC8069393C7C8401D63BA100247C0002147C6302C7
-S31AFE00474B147FA5EB784800A1ED7C7C1B797FBEEB784182003CB9
-S31AFE00476083A100247F83E3784800A4F17C661B783C60FE013876
-S31AFE0047756327247FA4EB787F85E378480070C5480000143C6023
-S31AFE00478AFE013863274C480070B53BC100243F400000839A39A7
-S31AFE00479F443C0000027F9C00003F20000083B9394C4FFEEB828A
-S31AFE0047B47C000026540007FE7C0000D07C0900F87F9C00385580
-S31AFE0047C929039C7F9C4B787FA3EB783880000038A001004800D3
-S31AFE0047DE693D3D20FE013F60000039692794801B393C814927C3
-S31AFE0047F394810B0004939D0018915D0000911D0004901D0014E0
-S31AFE004808901D00103BBD01007FA3EB783880000038A001004883
-S31AFE00481D0068FD3D60FE01801B393C810B279C392B279C80E992
-S31AFE004832000C81690004814900087C00E214939D0018911D0039
-S31AFE00484700917D0004915D000890FD000C901D0014901D001039
-S31AFE00485C3BBD01007FA3EB783880000038A00100480068AD3D9A
-S31AFE00487120FE01800927AC396927AC812B0008814B0004A10B0E
-S31AFE004886000C913D0008901D0000915D0004B11D000C880B002B
-S31AFE00489B0E3F800000981D000E817A3944801C39407D2B5A14D1
-S31AFE0048B07C090050901D0014917D0018901D00103BBD01007FFE
-S31AFE0048C5A3EB783880000038A0010048006849801C3940809A1B
-S31AFE0048DA39443D60FE01814B27BC7F640050392B27BCA10900D9
-S31AFE0048EF0C8009000481690008915D0000901D0004917D000870
-S31AFE004904B11D000C909D0018937D0010937D00147F63DB787F83
-S31AFE004919C5F3784800A0213BFF00013BFF00017C7C1B793BFF10
-S31AFE00492E00013BFF00014182002C83A100247F83E3784800A3B5
-S31AFE004943197C661B783C60FE01386327247FA4EB787F85E37867
-S31AFE00495848006EED480000448099394C7F63DB7857E5402E7F1B
-S31AFE00496DC6F3784800A13D7C7C1B794182002883A100247F8319
-S31AFE004982E3784800A2D57C661B783C60FE01386327CC7FA4EB56
-S31AFE004997787F85E37848006EA98001004C7C0803A68321002C07
-S31AFE0049AC83410030836100348381003883A1003C83C100408343
-S31AFE0049C1E10044382100484E8000209421FFF87C0802A69001C0
-S31AFE0049D6000C7C641B783C60FE013863267048006E613C6000CA
-S31AFE0049EB003C8000003CA0FE0138633738388437A838A52690E4
-S31AFE004A0048007CBD8001000C7C0803A6382100084E800020947F
-S31AFE004A1521FF207C0802A67D800026934100C8936100CC938189
-S31AFE004A2A00D093A100D493C100D893E100DC900100E491810098
-S31AFE004A3FC43BA000007C7B1B787C9A23783D20FE013BC92210F2
-S31AFE004A5493A1009893A100B0386100083880000038A0000C4814
-S31AFE004A690066B13D20000181491AB03B8100183800000C39607A
-S31AFE004A7E00013D20FE01B0010010B161000E91410008B3A100B3
-S31AFE004A930C392922687F83E3783880007638A0000038C00002B5
-S31AFE004AA838E100903900000048007C913D20FE01392922703836
-S31AFE004ABD6100303880007238A0000038C0000238E1009439006D
-S31AFE004AD2000048007C6D3D20FE013929228038610048388000A1
-S31AFE004AE76238A0000138C0000038E100983901009C48007C49EF
-S31AFE004AFC3D20FE0139292290386100603880006D38A000013802
-S31AFE004B11C0000138E100A0390100A448007C253D20FE0139298C
-S31AFE004B2622B0386100783880006838A0000138C0000138E10088
-S31AFE004B3BA8390100AC48007C013D40FE017F63DB787F44D3784F
-S31AFE004B507F86E378394A22C838A0000138E00005390100B03966
-S31AFE004B6520000148007BF52C0300003BE0000041820288800146
-S31AFE004B7A00AC2C0000004182002C806100A83881000848009336
-S31AFE004B8F8D2C030000408200183C60FE01808100A8386322D4A2
-S31AFE004BA448006CA148000254800100A42C0000004182007480FD
-S31AFE004BB96100A03C80FE01388422EC48006DCD2C0300004082EA
-S31AFE004BCE000C3BE0000148000054806100A03C80FE01388422F0
-S31AFE004BE3F448006DAD2C030000408200283D20000080093934F7
-S31AFE004BF83BE000002C000000408200283C60FE01386322FC48D7
-S31AFE004C0D006C39480001EC3C60FE01808100A03863232448004E
-S31AFE004C226C25480001D82E1F0000409200DC806100B02C03000C
-S31AFE004C37004082001C3C60FE013863233848006C017FC3F37893
-S31AFE004C4C48006BF9480001AC38C100B47CDE3378388100083803
-S31AFE004C61A000014800803D7C7C1B7940800028806100B483A167
-S31AFE004C7600B0480083D57C651B783C60FE013863234C7FA4EBAE
-S31AFE004C8B7848006BB94800016C3C60FE01808100903863CE489A
-S31AFE004CA0480001A93D2000013B491BC83BA000003B6100B848CD
-S31AFE004CB500000C7F9DD9AE3BBD0001281D0003418100184800D4
-S31AFE004CCA01A97C7C1B794080FFE8801A0110900100B42C1C00BC
-S31AFE004CDF0040800028806100B4480083657C641B783C60FE0101
-S31AFE004CF43863236448006B4D7FC3F37848008135480000F82C6E
-S31AFE004D091F0001408200143C60FE013863238848006B2D480092
-S31AFE004D1E00E04800010D800100942C000000418200548001006D
-S31AFE004D339C2C000000408200143C60FE01386323B448006B0108
-S31AFE004D48480000A883A100984800000C987D00003BBD000148FC
-S31AFE004D5D0001157C631B794080FFF03C60FE0180810098386336
-S31AFE004D7223D87FA5EB7848006ACD480000743C80FE01388423D1
-S31AFE004D87F0386100B938A0000348006C612C0300003BA100B81E
-S31AFE004D9C408200143C60FE0038634E70480006DD4800004488F6
-S31AFE004DB10100B82C00005340820028893D00013929FFD028099E
-S31AFE004DC60009418100183C60FE008081009838634E704800011C
-S31AFE004DDBC9480000143C60FE01808100B8386323F448006A5989
-S31AFE004DF04092000C386100B44800803D800100E4818100C47CD3
-S31AFE004E050803A6834100C8836100CC838100D083A100D483C197
-S31AFE004E1A00D883E100DC7D808120382100E04E8000203D200045
-S31AFE004E2F0139291BC88009010C39690004900901089169010447
-S31AFE004E444E8000203D600001392B1BC839400000380001009040
-S31AFE004E596B1BC8914901189009010C90890114914901084E807A
-S31AFE004E6E00209421FFF07C0802A693C1000893E1000C900100CE
-S31AFE004E83143D2000013BE91BC883DF01082C1E00004080000C1C
-S31AFE004E983860FFFF480000EC408200C4801F01142C0000004190
-S31AFE004EAD820038817F01183D200000392933047C8958AE396B74
-S31AFE004EC200013C60FE01917F01183863220848006975801F0187
-S31AFE004ED718280000064081000893DF01183D2000013BE91BC8C3
-S31AFE004EEC801F010C2C0000FF41810020801F01142C00000041D3
-S31AFE004F0182FF983C60FE013863220C480069394BFFFF883D2002
-S31AFE004F16000181291BC8381F00047C0303783880010038BF01EE
-S31AFE004F2B107D2803A6901F01044E8000212C030000907F010C21
-S31AFE004F40907F010841810020801F01142C0000004182FF483C38
-S31AFE004F5560FE013863220C480068E94BFFFF383D400001394A00
-S31AFE004F6A1BC8812A0108816A01043929FFFF912A0108886B0090
-S31AFE004F7F00396B0001916A0104800100147C0803A683C1000866
-S31AFE004F9483E1000C382100104E8000209421FF707C0802A6925B
-S31AFE004FA981006092A1006492C1006892E1006C93010070932125
-S31AFE004FBE0074934100789361007C9381008093A1008493C1000A
-S31AFE004FD38893E1008C900100947C7D1B787C9523783B60000045
-S31AFE004FE83A8000013B2000003AC000003AE0FFFF480002602CB2
-S31AFE004FFD050053418200183C60FE01386320A87F64DB784800EC
-S31AFE0050126835480002547FA803A63B7B00024E80002138A100FA
-S31AFE0050275838000000547C063E7CBA2B78900100587FA3EB7885
-S31AFE00503C38800001480002697C7F1B79408000183C60FE0138B5
-S31AFE0050516320D47F64DB78480067ED4800020C381CFFD028007C
-S31AFE00506600093B7B0001418101AC3D60FE01396B21E05400105D
-S31AFE00507B3A7D4B002E3D20FE01392921E07D4A4A147D4903A699
-S31AFE0050904E8004207FA3EB78389CFFD17F45D378480002092C5E
-S31AFE0050A51400007C7E1B78381BFFD17FD8F3787F60E2144182D4
-S31AFE0050BA002C2C1500004182001C7F3EA8503C60FE0138632086
-S31AFE0050CFF87F24CB7848006771480000083B2000003A80000065
-S31AFE0050E43D200000816939247FDECA147D39F0507C1748107C77
-S31AFE0050F90001107C0003B87D2900787C1E58407EE000387C17DD
-S31AFE00510E4B78418000143D2000008009390C7C1E00404081002A
-S31AFE005123183C60FE01386321107FC4F378480067154800013405
-S31AFE005138381F002E7FFC00507FE9FB782C0900007F7BFA143BBB
-S31AFE00514DFFFFFF408100307F5CD3787FA3EB78388000017F85F3
-S31AFE005162E378480001457FE0FB782C000000987E00003BDE001E
-S31AFE005177013BFFFFFF4181FFDC7FA3EB783880000138A0000033
-S31AFE00518C4800011D88A1005B7C6318F85466063E7C0628003B4E
-S31AFE0051A17B000190A10058418200183C60FE013863214C7F04EF
-S31AFE0051B6C3784800668D480000AC7D39F0507C09B0107C0001BE
-S31AFE0051CB107C0003B87D2900787EC000387C164B7848000054FF
-S31AFE0051E07FA3EB78209C003B7F45D378480000BD7C7E1B783D5C
-S31AFE0051F52000003C60FE0193C9392C386321887FC4F3787EE5D0
-S31AFE00520ABB787EC6B37848006635480000543C60FE0138632113
-S31AFE00521FB07F64DB787F85E3784800661D4800003C7F7FDB7891
-S31AFE0052347FBEEB78480000083BFF00017FC803A64E8000212C2B
-S31AFE00524903000A4082FFF07FDDF3787FFBFB787FA803A64E803C
-S31AFE00525E00217C651B794181FD98800100947C0803A682810005
-S31AFE0052736082A1006482C1006882E1006C8301007083210074B5
-S31AFE005288834100788361007C8381008083A1008483C1008883F6
-S31AFE00529DE1008C382100904E8000209421FFE07C0802A6936100
-S31AFE0052B2000C9381001093A1001493C1001893E1001C900100DE
-S31AFE0052C7247C9E23787FC0F3782C0000007C7B1B787CBC2B78BA
-S31AFE0052DC3BA000003BDEFFFF408101787F6803A64E8000217F8F
-S31AFE0052F16803A6547F063E4E800021393FFFD0381FFFBF2129E7
-S31AFE0053060009392000007D29491420000005380000007C00014F
-S31AFE00531B147D270379546B063E3920000040820010381FFF9F22
-S31AFE0053302800000541810008392000012C0900004182010439DD
-S31AFE0053452BFFD0380BFFBF7D2A4B787C0803785529063E5400D5
-S31AFE00535A063E21290009392000007D29491420000005380000EA
-S31AFE00536F007C0001147D2703793920000040820010380BFF9F68
-S31AFE0053842800000541810008392000012C090000418200B039DE
-S31AFE0053993FFFD05520063E2800000957BD402E4181000C7D2313
-S31AFE0053AE4B7848000030381FFF9F280000054181000C387FFF05
-S31AFE0053C3A94800001C381FFFBF393FFFC9200000057C000110BD
-S31AFE0053D87C0003B87C0348385540063E280000094181000C7D31
-S31AFE0053ED49537848000030380BFF9F280000054181000C392BDB
-S31AFE005402FFA94800001C5500063E392BFFC9200000057C00011E
-S31AFE005417107C0003B87C094838546020362C1C00007C034B789C
-S31AFE00542C7FBD1B784182001C801C00007C001A14901C0000487F
-S31AFE00544100000C3860FFFF480000187FC0F3782C0000003BDE61
-S31AFE005456FFFF4181FE907FA3EB78800100247C0803A6836100B4
-S31AFE00546B0C8381001083A1001483C1001883E1001C382100207B
-S31AFE0054804E8000209421FFF87C0802A69001000C3C60FE0138DD
-S31AFE00549563208C480063AD8001000C7C0803A6382100084E80AE
-S31AFE0054AA00203860001C4E8000209421FFE87C0802A693A1002B
-S31AFE0054BF0C93C1001093E100149001001C7C7D1B78813D0004E1
-S31AFE0054D483C900044800002C73E00012418200107FA3EB787FBF
-S31AFE0054E9E4FB784800004973E000084182000C7FA3EB784800CB
-S31AFE0054FE01A9B3FE0010A01E00107000001A541F043E2C1F00D2
-S31AFE005513004082FFC88001001C7C0803A683A1000C83C10010A8
-S31AFE00552883E10014382100184E8000209421FFE87C0802A69338
-S31AFE00553D81000893A1000C93C1001093E100149001001C7C7DFA
-S31AFE0055521B7883DD000483FE0018A01F0000700090002C0010B5
-S31AFE00556700408200683B9E0028813D0000801E00108169002486
-S31AFE00557C7C00F850816B00085400F87AA13F00007C9C002E7FF3
-S31AFE005591A3EB7838A000007D6803A67129EFFFB13F00004E804F
-S31AFE0055A60021A01F0000700920004182000C83FE0010480000CB
-S31AFE0055BB083BFF0008A01F0000700090002C0010004182FFA42C
-S31AFE0055D093FE00188001001C7C0803A68381000883A1000C8390
-S31AFE0055E5C1001083E10014382100184E8000209421FFE87C08E5
-S31AFE0055FA02A693A1000C93C1001093E100149001001C81230073
-S31AFE00560F048169000C83EB00047C188AA654000FFE2C000000C5
-S31AFE00562441820028812B0004A00B00022C000000408100187CA4
-S31AFE005639004BAC7C0004AC3400FFF0392900104181FFF02C05BE
-S31AFE00564E0000408100387C9E23787CBD2B78807E00002C03008C
-S31AFE005663004182001880BE00047FE4FB78480059D1801E000427
-S31AFE0056787FFF021437BDFFFF3BDE00084082FFD88001001C7CC0
-S31AFE00568D0803A683A1000C83C1001083E10014382100184E8018
-S31AFE0056A200209421FFE87C0802A693A1000C93C1001093E100EF
-S31AFE0056B7149001001C7C7D1B7883DD000483FE001C48000048FC
-S31AFE0056CC813D000093FE000C816900247FA3EB78800B0004A0A8
-S31AFE0056E19F00027C0803A64E800021A01F000060008000B01F85
-S31AFE0056F60000A13F0000712020004182000C83FE00144800005E
-S31AFE00570B083BFF0008A01F0000700090002C0010004182FFB0CE
-S31AFE00572093FE001C8001001C7C0803A683A1000C83C1001083F2
-S31AFE005735E10014382100184E8000209421FFD87C0802A69301BB
-S31AFE00574A00089321000C93410010936100149381001893A10032
-S31AFE00575F1C93C1002093E100249001002C83C300047C98237853
-S31AFE00577483BE00087CBB2B78A01D00007CD93378700980007CC7
-S31AFE005789FA3B78418200447FBFEB783F80FE01A01F00007009BC
-S31AFE00579E20004182000C83FE0010480000083BFF00087C1FE85D
-S31AFE0057B3004082000C387C202448006089A01F0000700980002E
-S31AFE0057C84082FFD07FFDFB78A01D00007009200041820010809F
-S31AFE0057DD1E00107C0903784800000C381D0008813E0010901E57
-S31AFE0057F200087C09E8502C1B00005400F87A393E0028B33D003D
-S31AFE005807027F49012E83FD0004408100307F1EC3787F7CDB78F4
-S31AFE00581C809E000080BE00047FE3FB7848005819801E000437AC
-S31AFE0058319CFFFF3BDE00087FFF02144082FFE07C188AA6540056
-S31AFE0058460FFE2C00000041820028813D0004A01D00022C000078
-S31AFE00585B00408100187C004BAC7C0004AC3400FFF03929001027
-S31AFE0058704181FFF0A01D00006000DC00B01D00008001002C7C7F
-S31AFE0058850803A6830100088321000C834100108361001483814D
-S31AFE00589A001883A1001C83C1002083E10024382100284E800062
-S31AFE0058AF208123000481690008A06B000054638BFE686300010F
-S31AFE0058C44E800020688401003004FFFF7C6021104E8000208142
-S31AFE0058D923000481690004800B000060000030900B00004E801D
-S31AFE0058EE00208123000481690004800B000054000732900B0038
-S31AFE005903004E8000209421FFD87C0802A69321000C9341001041
-S31AFE005918936100149381001893A1001C93C1002093E100249056
-S31AFE00592D01002C83230008839900047FDE9AA677DEFFFF3C80BA
-S31AFE0059420000388433503860000838A0000648000D297F788A90
-S31AFE005957A6577B0FFE39200000380000807C0903A661201000E2
-S31AFE00596C3CC00E007C0004AC7D398BA67CD88BA67C198BA67C3E
-S31AFE005981D88BA6392900104200FFE03D2004007C0004AC7D382F
-S31AFE0059968BA63FA000003CC0FE003CE0FE013D20000038C65D1B
-S31AFE0059AB1C38E7E7FC391D393839297A083860001C38800000AE
-S31AFE0059C07F25CB7848004845807D39383BFE3C00480048613806
-S31AFE0059D560001C48004C6D3860001C48004B15801E0A003B5E9F
-S31AFE0059EA0A005400073293FC0000901E0A00935C00047FE3FB76
-S31AFE0059FF783880000038A000A44800571138C000047CC903A649
-S31AFE005A142F9B0000391E2C00395E2C203D2000003D6000003817
-S31AFE005A29E0000038009000915C001C39294A50396B6210911CF4
-S31AFE005A3E0010911C0008911C0018915C0014915C000CB0EA0031
-S31AFE005A5302912A0004B00A0000392905F0394A00084200FFECB0
-S31AFE005A68A40AFFF87D09437860002000B00A0000394000047D0B
-S31AFE005A7D4903A6399F007238000000B009000291690004B0092A
-S31AFE005A920000396B05F0392900084200FFEC7D284B78A408FFB8
-S31AFE005AA7F83B60000160002000B0080000A13E09523BA00010F5
-S31AFE005ABC61290003B13E0952A01E0950390005F05400043AB073
-S31AFE005AD11E0950A13E09543B80FFFF7129FFFDB13E0954A01EB0
-S31AFE005AE609623D40DEBB7000FFCFB01E0962A13E0960614A209C
-S31AFE005AFBE37129FFCFB13E0960A01E096439600000600000309B
-S31AFE005B10B01E0964A13E09523860888861290A00B13E0952A0E1
-S31AFE005B251E09503880000F7000F5FFB01E0950813E0AEC38C0F1
-S31AFE005B3A05EE5529002E913E0AEC801E0AEC38E00040600000A2
-S31AFE005B4F3D901E0AEC813E0AEC38002C20552906B0913E0AEC2A
-S31AFE005B64937E0030B01F000039202C00B13F00029BBF00049BA8
-S31AFE005B79BF0005B11F0006939F0030915F0034917F0038917F9B
-S31AFE005B8E003C917F0040B07F0044B17F0044B09F0046B17F00C6
-S31AFE005BA348B0DF004AB0FF004CB11F004EB11F00503800000651
-S31AFE005BB8B17F00587C0903A6B17F005A3CA00000B17F005CB17B
-S31AFE005BCD7F005E38A533567D8963788C05FFFF98090000392909
-S31AFE005BE200014200FFF438000000B01F0078B01F0094B01F00C3
-S31AFE005BF796B01F0098B01F009AB01F009EB01F00A0B01F00A2E2
-S31AFE005C0C39200001B13E09C0A01E09C070060001418200187F15
-S31AFE005C21C9F378A00909C0700A00014082FFF87D3E4B783800DA
-S31AFE005C36FFFFB01A00103920001AB13A0014396000003C001026
-S31AFE005C4B88917A00046000000C901A00003920D555B13A000E17
-S31AFE005C603800280AB01A0008392000903D60FA10992B0000A0FB
-S31AFE005C751E096260000001B01E0962A13E09605529043CB13EFE
-S31AFE005C8A0960419E00103D6002007C0004AC7D788BA6813900FE
-S31AFE005C9F003C800000816900247F23CB78800B00003884335073
-S31AFE005CB47C0803A64E800021386000018001002C7C0803A683C5
-S31AFE005CC921000C83410010836100148381001883A1001C83C129
-S31AFE005CDE002083E10024382100284E8000209421FFF87C080264
-S31AFE005CF3A69001000C4BFFF7BD3860001C480049453860001C19
-S31AFE005D08480047ED8001000C7C0803A6382100084E8000209469
-S31AFE005D1D21FFF87C0802A69001000C3860001C4800466538604D
-S31AFE005D3200038001000C7C0803A6382100084E8000209421FF98
-S31AFE005D47F07C0802A693C1000893E1000C900100143D60000009
-S31AFE005D5C3D200000392937383BEB37347C1F4840418000207DEE
-S31AFE005D713E4B78813F00003BFFFFFC7D2803A64E8000217C1F4B
-S31AFE005D86F0404080FFEC800100147C0803A683C1000883E100B7
-S31AFE005D9B0C382100104E8000209421FFF87C0802A69001000C17
-S31AFE005DB03D200000800936B42C0000004182000C9003009448A0
-S31AFE005DC50000243D200000906939A0480018197C1602A6280097
-S31AFE005DDA7A124081000C38007A127C1603A68001000C7C080344
-S31AFE005DEFA6382100084E8000204E800020386000004E80002032
-S31AFE005E049421FFF07C0802A693E1000C90010014480005F13D15
-S31AFE005E192000003889361C800400083BE000002C0000004182A7
-S31AFE005E2E00307FE3FB787C9F2378809F000080BF000480DF00DF
-S31AFE005E430888FF000C3BFF0010480004C1801F00082C00000081
-S31AFE005E584082FFE0800100147C0803A683E1000C382100104EA7
-S31AFE005E6D8000203C000A007C0004AC7C108BA67C0004AC7C188D
-S31AFE005E828BA63C000C004C00012C7C108BA64C00012C7C00045F
-S31AFE005E97AC7C188BA63C0002004C00012C7C108BA64C00012C94
-S31AFE005EAC7C0004AC7C188BA64E8000209421FFF87C0802A69096
-S31AFE005EC101000C480000ED38007A127C1603A68001000C7C0876
-S31AFE005ED603A6382100084E8000203D20002F6129AF087C6349C6
-S31AFE005EEBD63C00431B6000DE837C0300967C63FE707C00967089
-S31AFE005F007D6300507D3602A67D605B782C000000396BFFFF4C33
-S31AFE005F15810020394BFFFF7C1602A67C0900004182FFF87C0952
-S31AFE005F2A03787D605B782C0000007D4B53784181FFE04E800005
-S31AFE005F3F209421FFF87C0802A69001000C3D20FF006129093095
-S31AFE005F5438000001B00900007C0006ACA00900007C0006AC54E9
-S31AFE005F6900AAFF38600000418200302060003A3D6000005460E0
-S31AFE005F7E103A396B33587D6B002E3D200000392934447C89003F
-S31AFE005F932E7D6803A64E800021546307FA8001000C7C0803A6D8
-S31AFE005FA8382100084E8000203D20000039493358390000407C32
-S31AFE005FBD0A402E3D20FE0039295DFC7C00480041820018800A14
-S31AFE005FD200403D20FE013929AF987C004800408200343D20FE5C
-S31AFE005FE70039295F403D600000380000007D2A412E6000DEADCA
-S31AFE005FFC396B34447C0B412E3D20000039293530380000007CA2
-S31AFE00601109412E3D60FE01800B2EF43D20FE0139292EB87D296B
-S31AFE00602602147D2903A64E8004203D20FF006129001480090087
-S31AFE00603B007C0006AC64000001900900007C0006AC480000E8C2
-S31AFE0060503D20FF0061290200A00900007C0006AC60000008B060
-S31AFE0060650900007C0006AC480000C83D20FF0061290200A0094A
-S31AFE00607A00007C0006AC60000004B00900007C0006AC4800004C
-S31AFE00608FA83D20FF0061290240A00900007C0006AC60000004ED
-S31AFE0060A4B00900007C0006AC480000883D20FF0061290220A084
-S31AFE0060B90900007C0006AC60000008B00900007C0006AC480000
-S31AFE0060CE00683D20FF0061290220A00900007C0006AC60000012
-S31AFE0060E304B00900007C0006AC480000483D20FF0061290940FA
-S31AFE0060F8800900007C0006AC60000080900900007C0006AC48E9
-S31AFE00610D0000283D20FF0061290948816900007C0006AC3C00C6
-S31AFE006122800054005D7E7D6B0378916900007C0006AC3D60FE8F
-S31AFE00613701800B30043D20FE0139292FA07D2902147D2903A6F7
-S31AFE00614C4E8004203D20FF0061290200A00900007C0006AC5435
-S31AFE00616100063E60000100B00900007C0006AC480000683D208C
-S31AFE006176FF0061290240A00900007C0006AC5400063E60000175
-S31AFE00618B00B00900007C0006AC480000443D20FF006129022080
-S31AFE0061A0A00900007C0006AC5400063E60000100B00900007CE1
-S31AFE0061B50006AC480000203D20FF0061290940800900007C0083
-S31AFE0061CA06AC6000E000900900007C0006AC3D60FE01800B30AC
-S31AFE0061DFEC3D20FE01392930887D2902147D2903A64E80042048
-S31AFE0061F43D20FF0061290014800900007C0006AC6000004090B1
-S31AFE0062090900007C0006AC4E8000203D20FF0061290200A009C6
-S31AFE00621E00007C0006AC60000008B00900007C0006AC4E80001C
-S31AFE006233203D20FF0061290200A00900007C0006AC600000040F
-S31AFE006248B00900007C0006AC4E8000203D20FF0061290240A0A0
-S31AFE00625D0900007C0006AC60000004B00900007C0006AC4E80D8
-S31AFE00627200203D20FF0061290220A00900007C0006AC600000B4
-S31AFE00628708B00900007C0006AC4E8000203D20FF006129022019
-S31AFE00629CA00900007C0006AC60000004B00900007C0006AC4E79
-S31AFE0062B18000203D20FF0061290940800900007C0006AC6000EE
-S31AFE0062C60080900900007C0006AC4E8000203D20FF006129099B
-S31AFE0062DB48816900007C0006AC3C00800054000FFE7D6B0378CA
-S31AFE0062F0916900007C0006AC4E8000207C1E22A6600000077C3A
-S31AFE0063051E23A64E8000209421FFF093E1000C54E0FFFE70FFE6
-S31AFE00631A00012F0000002F8300207CC0FE707D600026556B1FDC
-S31AFE00632FFE54A500267D400026554ADFFE7C0600507D4A00D070
-S31AFE0063447CE0002654E7EFFE7D6B00D060A808FF54000FFE7DF1
-S31AFE0063590858787D4950F860A508FD7CFF00387CAB5838714A16
-S31AFE00636E000D2F9F00007D654378548400267129001D7D4A4BD7
-S31AFE00638378608402003960000039000020419E005C546B402E49
-S31AFE0063987D55C3A67D70C3A67C93C3A67CB6C3A660A001007DCA
-S31AFE0063AD5DC3A67D78C3A67C9BC3A67C1EC3A6386300013CC692
-S31AFE0063C2FF807F8340007CC0FE707C0600507D2000265529EF55
-S31AFE0063D7FE54000FFE7D2700393C8400803CA500804082FFAC63
-S31AFE0063EC656020007C10C3A67C18C3A683E1000C382100104E9A
-S31AFE006401800020380000007C19C3A6380000207C0903A63920CD
-S31AFE0064160000380000007C15C3A67D30C3A67C13C3A67C16C3D8
-S31AFE00642BA67C1DC3A67D38C3A67C1BC3A67C1EC3A6392901002C
-S31AFE0064404200FFD83C00200060001F007C10C3A67C18C3A64E0F
-S31AFE0064558000209421FDE87CDE9AA674C6FFFF3D600000812BD9
-S31AFE00646A366C2C0900004082020039400030380000017D4903D3
-S31AFE00647FA6900B366CB12609C43800000039263C807D284B78C2
-S31AFE0064949806086038E62E0838A1000838862E003861000939ED
-S31AFE0064A981021198090000392900014200FFF839202E00B128A9
-S31AFE0064BE0002396000103940020938002E089968000599680021
-S31AFE0064D304B0080000B14800063920A800B1262E0838000101AD
-S31AFE0064E8B007000290A700047C8B2378B14B0002380000A59892
-S31AFE0064FD01000890AB0004B1262E00380000009806086439209E
-S31AFE006512005099260868380000019806086039200111B1260967
-S31AFE006527C0A00609C070090001418200187CC93378A00909C075
-S31AFE00653C700A00014082FFF87D264B7838000211B00609C0A141
-S31AFE0065512609C071200001418200187CC93378A00909C0700AF9
-S31AFE00656600014082FFF87D264B78392000007D2903A63800001C
-S31AFE00657B819806086C7D4902A6614AC3517D4903A6A00B00002D
-S31AFE00659070098000418200084200FFF4394001007D4903A63DD3
-S31AFE0065A520000039297E2439600000380000FF7C0959AE396BB9
-S31AFE0065BA00014200FFF87D8763787C6B1B787C0B3800418200B3
-S31AFE0065CF9C3CA00000880B00002C00004D40820080880B000159
-S31AFE0065E42C00004F40820074880B00022C000054408200688C22
-S31AFE0065F90B000839400000892B00015400402E7C084B787C0AB9
-S31AFE00660E4000396B00024080005438857E247C651B78880B0013
-S31AFE00662300396B00017D693A787D23FE707C0451AE7C604A78F6
-S31AFE0066387C0018507C00FE70394A00017CA900787C0A40007D17
-S31AFE00664D6000387C0B4B784180FFCC48000010396B00017C0B42
-S31AFE00666238004082FF703800000098060860382102184E800037
-S31AFE006677209421FFE87C0802A693A1000C93C1001093E10014F6
-S31AFE00668C9001001C7C7D1B787C9F23787CBE2B784BFFFDBD3DE8
-S31AFE0066A120000039697E24394B01007C0B50404080008457A89D
-S31AFE0066B6063E880B00007C00400040820054886B0001396B008A
-S31AFE0066CB027F83F0004FFEE3827C000026540007FE7C0000D0C9
-S31AFE0066E07FC900787C6000387C034B794081004C7C6903A67D72
-S31AFE0066F5695B787FE4FB7888090000392900019804000038842E
-S31AFE00670A00014200FFF048000028886B0001380300027D2B00FB
-S31AFE00671FEE5529063E2C0900FF4182000C7C0B50404180FF884F
-S31AFE006734386000008001001C7C0803A683A1000C83C1001083E3
-S31AFE006749E10014382100184E8000209421FFF87C0802A690017A
-S31AFE00675E000C480046758001000C7C0803A6382100084E80002A
-S31AFE006773203C80FF00608400007C9E9BA63CA0FA1060A5000107
-S31AFE0067883C60000060630000986500007C788AA63C600A007C56
-S31AFE00679D0004AC7C788BA63C600C007C0004AC7C788BA63C6079
-S31AFE0067B204007C0004AC7C788BA63C6001007C0004AC7C788B31
-S31AFE0067C7A63C6007007C0004AC7C788BA67C708AA63C600A005D
-S31AFE0067DC7C708BA64C00012C3C600C007C708BA64C00012C3C94
-S31AFE0067F16004007C708BA64C00012C7C0004AC3C6000606063AA
-S31AFE0068062400906400003C60FFFF6063FF88906400043C6000E9
-S31AFE00681B00606300C2B06402003C6055CC6063AA339064032055
-S31AFE00683090640324906403289064032C386000C3B06402203829
-S31AFE006845600083B06402403CA0FE0060A569E43CC0FE0060C6B5
-S31AFE00685A6AE47CE530507CE7167038C00000806500009064013B
-S31AFE00686F7C90C4016838A5000438C600017C0638004180FFE895
-S31AFE00688438600200B064017A3C60188060631000906401703C2A
-S31AFE00689960FE00606304013CA0FF8060A509609064010090A4CE
-S31AFE0068AE01043C600000606300813CA0FFC060A5040090640153
-S31AFE0068C30890A4010C3C600000606300803CA0000060A50400AF
-S31AFE0068D89064011090A401143C600000606300803CA00000603E
-S31AFE0068EDA504009064011890A4011C3C60FA00606304013CA051
-S31AFE006902FFE060A509309064012090A401243C60800060630012
-S31AFE006917013CA0A00060A501089064012890A4012C3C60FA21A7
-S31AFE00692C606300013CA0FFFF60A501089064013090A401343CDC
-S31AFE00694160FC00606300013CA0FF8060A509409064013890A413
-S31AFE006956013C3C6002006063000090640280806402845463658E
-S31AFE00696B3E2C030000418200103C605F506063D0004800000CA1
-S31AFE0069803C6000006063D000906402843C4000003C60FF0060DE
-S31AFE006995630014904300003C400000604200007C4210F87C56E9
-S31AFE0069AA03A6384000013C60FF0060630200B04300003CA0FA89
-S31AFE0069BF1060A500013C60000060630008986500007C6802A6B9
-S31AFE0069D47063FFFF6463FE007C6803A64E800020CFAFC0040F48
-S31AFE0069E9AFC4040CAF8C0410AF0C04F0AF0C00F3BF4805FFFF5C
-S31AFE0069FEC005FFFFC005CFAFC0040FAFC4040CAF8C0400AF0C2A
-S31AFE006A130407AF0C080CAF0C0401AF0C040FAF0C080CAF0C0474
-S31AFE006A2801AF0C040FAF0C080CAF0C0410AF0C04F0AFC000F3D7
-S31AFE006A3DBF4805FFFFC005CFFF00040FFF04040CFF0C0013FF60
-S31AFE006A524804FFFFC004FFFFC005FFFFC005FFFFC005CFFF0006
-S31AFE006A67040FFF04040CFF0C0003FF0C0C0CFF0C0003FF0C0C9A
-S31AFE006A7C0CFF0C0003FF0C0C0CFF0C0013FF4804FFFFC004FF9A
-S31AFE006A91FFC005FFFFC005FFFFC005FFFFC005FFFFC005FCFF21
-S31AFE006AA6C004C0FFC00401FFC0040FFFC0041FFFC004FFFFC05A
-S31AFE006ABB04FFFFC005FFFFC005FFFFC005FFFFC005FFFFC005EF
-S31AFE006AD0FFFFC005FFFFC007FFFFC007FFFFC007FFFFC0077066
-S31AFE006AE563000E3C80FA1060840001986400004E8000203C80D6
-S31AFE006AFAFA106084000138A0000A98A400003CA0000A7CA90368
-S31AFE006B0FA64200000038A0000C98A400003CA0000A7CA903A6B1
-S31AFE006B24420000003863FFFF2C0300004080FFD038A000069849
-S31AFE006B39A400003CA000147CA903A6420000004E8000203D2054
-S31AFE006B4EFE01392931705463073E7C6918AE4E8000209421FFE3
-S31AFE006B63F87C0802A69001000C3D200000806936882C03000025
-S31AFE006B784181000C480029494800000C3800FFFF90093688801B
-S31AFE006B8D01000C7C0803A6382100084E8000203803FF9F280065
-S31AFE006BA200054181000C3863FFA94E8000203923FFD055200630
-S31AFE006BB73E280000094181000C7D234B784E8000203803FFBF3E
-S31AFE006BCC280000054081000C3860FFFF4E8000203863FFC94E81
-S31AFE006BE18000209421FFE07C0802A690010024380000009801B5
-S31AFE006BF60018906100104BFFFF655463063E38810008480000BB
-S31AFE006C0B1D2C0300014082FFEC800100247C0803A6382100202B
-S31AFE006C204E8000209421FFF07C0802A693C1000893E1000C9031
-S31AFE006C350100147C9F2378897F00102C0B0000408200282C0313
-S31AFE006C4A002440820098392000013800FFFF901F0004993F0098
-S31AFE006C5F10917F0000917F000C4800007C2C0B000140820054CE
-S31AFE006C742C03002340820020815F0008817F000C380000007C2B
-S31AFE006C890A59AE39200002993F001048000050817F000C2C0BC3
-S31AFE006C9E0800418200E8801F0000813F00087C001A14901F006A
-S31AFE006CB3007C6959AE380B0001901F000C480000242C0B000238
-S31AFE006CC8408200245463063E4BFFFECD546320363800000390E5
-S31AFE006CDD7F0004981F001038600000480000AC2C0B00034082CC
-S31AFE006CF200985463063E4BFFFEA5801F0004893F00037C001B04
-S31AFE006D07787C090000901F0004418200103860002D480027714B
-S31AFE006D1C4800006C3860002B48002765813F0008880900022C8C
-S31AFE006D3100003A4082004C8869000083DF000C48002749813F2A
-S31AFE006D460008886900014800273D396000037C0BF04041810079
-S31AFE006D5B287FCAF3787FE4FB78812400087C0958AE7D2B4A142F
-S31AFE006D70396B00017C0B50409809FFFD4081FFE8386000014828
-S31AFE006D8500001038000000981F00103860FFFF800100147C0837
-S31AFE006D9A03A683C1000883E1000C382100104E8000209421FF70
-S31AFE006DAFE07C0802A69361000C9381001093A1001493C10018E7
-S31AFE006DC493E1001C900100243D20FE013B6931707C7C1B78380D
-S31AFE006DD9600024480026AD8BFC00003BC000002C1F00003BA05A
-S31AFE006DEE0000418200247FE3FB78480026917C1DFA143BDE0011
-S31AFE006E03017FFCF0AE541D063E2C1F00004082FFE438600023FC
-S31AFE006E184800267157A0E13E7C7B00AE4800266557A0073E7C3C
-S31AFE006E2D7B00AE480026594BFFFD2D5463067E2C03002B408291
-S31AFE006E42FF98800100247C0803A68361000C8381001083A100A6
-S31AFE006E571483C1001883E1001C382100204E8000209421FFD83F
-S31AFE006E6C7C0802A6936100149381001893A1001C93C100209356
-S31AFE006E81E100249001002C3D200000816939503D4000002C0BB2
-S31AFE006E96000038000000900A368C3F6000003F8000004081012F
-S31AFE006EAB383FC000003FA000003D2000008009395C2C00000011
-S31AFE006EC04182006C801C39503D60000028000003408100188044
-S31AFE006ED51E3954700900034082000C3BE0000448000034801C78
-S31AFE006EEA39503BE000012800000140810024800B395454000769
-S31AFE006EFFFE7C0000D07C00FE707C0900F8540007FE552907BC2F
-S31AFE006F147C1F4B78808B3954386100087FE5FB784800316148D4
-S31AFE006F29000014813E39543BE0000188090000980100083D2044
-S31AFE006F3E00008009368C2C00000040820098390000007C08F8B4
-S31AFE006F53004080006C3D20FE0138C9317038A100083CE00000FE
-S31AFE006F683C8000007D6828AE814739585560E13E7D2600AE9982
-S31AFE006F7D2A00008004368C394A00012C000000914739584082B0
-S31AFE006F9200505560073E7D2600AE396A0001992A0000801B3613
-S31AFE006FA78C916739582C00000040820030390800017C08F800E0
-S31AFE006FBC4180FFB0813D3950801E39547D3F48502C0900007CD5
-S31AFE006FD100FA14901E3954913D39504181FED88001002C7C083E
-S31AFE006FE603A6836100148381001883A1001C83C1002083E100CD
-S31AFE006FFB24382100284E8000209421FFE87C0802A693A1000CE2
-S31AFE00701093C1001093E100149001001C2C0600003D2000003D02
-S31AFE0070256000003D4000003D00000090893958906B395490AACC
-S31AFE00703A395090C8395C418200303FA0000038000000901D36DA
-S31AFE00704F8C813D368C4BFFFE15813D368C801D368C2C000000B4
-S31AFE00706441820010386000004800001C4BFFFDF93D60000081E6
-S31AFE0070792B39583800000098090000806B39588001001C7C08CC
-S31AFE00708E03A683A1000C83C1001083E10014382100184E800005
-S31AFE0070A3209421FFC07C0802A69281001092A1001492C100183F
-S31AFE0070B892E1001C9301002093210024934100289361002C93F5
-S31AFE0070CD81003093A1003493C1003893E1003C900100443D2023
-S31AFE0070E20000800939503B6000002C0000003D2000009369362D
-S31AFE0070F78C3E8000003EA00000408101703D2000008169395452
-S31AFE00710C3F000000880B00002C000000418201583EC000003F13
-S31AFE0071214000003EE000008016395C2C000000418200588015F0
-S31AFE00713639502800000340810018801A3958700900034082004A
-S31AFE00714B0C3BC000044800003C801539503BC000012800000159
-S31AFE0071604081002C801A3958540007FE7C0000D07C00FE707CF3
-S31AFE0071750900F8540007FE552907BC7C1E4B78480000083BC0BE
-S31AFE00718A00013BE000007C1FF000408000743FA000003F2000D3
-S31AFE00719F003B810008813D39548869000039290001913D395419
-S31AFE0071B45463063E4BFFF9E58019368C547B26362C00000040AD
-S31AFE0071C98200A8813839548869000039290001913839545463DC
-S31AFE0071DE063E4BFFF9BD8014368C7F631B782C000000547B0688
-S31AFE0071F33E4082007C7F7FE1AE3BFF00017C1FF0004180FFA054
-S31AFE0072088016395C2C00000041820018809A3958386100087F70
-S31AFE00721DC5F37848002EC54800000C813A39589B6900003D20EC
-S31AFE00723200008009368C2C0000004082003481373950801A39C2
-S31AFE007247587D3E48502C0900007C00F214901A39589137395040
-S31AFE00725C4081001481383954880900002C0000004082FEBC8045
-S31AFE0072710100447C0803A68281001082A1001482C1001882E18A
-S31AFE007286001C8301002083210024834100288361002C83810067
-S31AFE00729B3083A1003483C1003883E1003C382100404E800020AF
-S31AFE0072B09421FFE87C0802A693A1000C93C1001093E100149041
-S31AFE0072C501001C2C0600003D2000003D6000003D4000003D00AD
-S31AFE0072DA000090693954908B395890AA395090C8395C418200F6
-S31AFE0072EF303FA0000038000000901D368C813D368C4BFFFDA564
-S31AFE007304813D368C801D368C2C000000418200103860000048B2
-S31AFE0073190000104BFFFD893D200000806939588001001C7C0883
-S31AFE00732E03A683A1000C83C1001083E10014382100184E800062
-S31AFE007343209421FFF87C0802A69001000C480028713D2000005E
-S31AFE00735838000001900936708001000C7C0803A6382100084E3B
-S31AFE00736D8000209421FFE87C0802A693A1000C93C1001093E187
-S31AFE00738200149001001C7C9E23783BA000007C7F1B7893BE00C2
-S31AFE0073970048000024801E0000813F0000540020367C001B785A
-S31AFE0073AC39290001901E0000913F00003BBD0001813F000088A6
-S31AFE0073C16900002C030000418200104BFFF7D17C631B79408003
-S31AFE0073D6FFC87FA3EB788001001C7C0803A683A1000C83C10014
-S31AFE0073EB1083E10014382100184E8000207C842379394000008D
-S31AFE00740040820018380000309803000198030000386000024E12
-S31AFE007415800020392500077D20FE7054001F7E7D2902147D25FF
-S31AFE00742A1E71418200603D20FE0138C9317038E5FFFF54E01832
-S31AFE00743F387C88043068A90001200900007D2049143168FFFFF8
-S31AFE0074547C0B41107C0B4B79418200285508063E5500E13E7D7F
-S31AFE0074696600AE5509073E7C0648AE996300009C0300013863A4
-S31AFE00747E0001394A00027CE53B794082FFB07D4353784E800090
-S31AFE007493209421FFF07C0802A693E1000C900100143D2000006E
-S31AFE0074A880A939907C641B782C05000038600000408100843F19
-S31AFE0074BDE00000801F36942C00000041820010386000017C0851
-S31AFE0074D203A64E8000212C030001408200103D20000098693673
-S31AFE0074E79048000054801F36942123FFFF216900007D2B491426
-S31AFE0074FC216000007C0B01147C0B4B79418200343D200000803B
-S31AFE00751109396C2C00000041820024386000017C0803A64E800C
-S31AFE00752600212C030000418200103D20000038000001980936BC
-S31AFE00753B91800100147C0803A683E1000C382100104E8000201D
-S31AFE0075509421FFF07C0802A693E1000C900100143FE000008886
-S31AFE0075651F36902C000000418200343D200000800936942C0029
-S31AFE00757A0000418200243D20000080A939903860000038800072
-S31AFE00758F007C0803A64E80002138000000981F36903FE00000F3
-S31AFE0075A4881F36912C000000418200283D2000008009396C2C92
-S31AFE0075B900000041820018386000007C0803A64E8000213800F2
-S31AFE0075CE0000981F3691800100147C0803A683E1000C3821009B
-S31AFE0075E3104E8000209421FFF07C0802A693C1000893E1000CE5
-S31AFE0075F8900100143D200000800936842C0000004182001080B6
-S31AFE00760D0936847C0803A64E8000213D200000800939A42C0096
-S31AFE00762200004182001438000000900939A43BE0000248000065
-S31AFE0076371048007C1948007B4D7C7F1B7848007CD52C030000E7
-S31AFE00764C4182000848007D0148007CC14BFFFEF948007C713861
-S31AFE007661600003480028B538600003480028452C1F000041822A
-S31AFE00767600203FC00000813E36747FE3FB787D2803A64E800082
-S31AFE00768B212C0300004082FFEC48007C7D3D200000800936800C
-S31AFE0076A02C00000041820010800936807C0803A64E80002180F7
-S31AFE0076B50100147C0803A683C1000883E1000C382100104E8087
-S31AFE0076CA00209421FFB87C0802A6936100349381003893A10047
-S31AFE0076DF3C93C1004093E100449001004C7C7E1B783BE0000085
-S31AFE0076F43F6000003B810028801B39703BA000012C000000416D
-S31AFE00770982001C7FE3FB787F84E3787C0803A64E8000217C7D81
-S31AFE00771E1B78480000107FE3FB7848001D3990610028381FFF85
-S31AFE007733E02800001F7C0A03782F9D00003BFF00017F83E378B1
-S31AFE0077484181004C390000047D0903A6386100087C6B1B78385B
-S31AFE00775D000000392000007C0B49AE392900014200FFF8380068
-S31AFE00777200047C0903A67C6943787F8BE378880B0000396B0090
-S31AFE0077870198090000392900014200FFF0419E0030200A001F5B
-S31AFE00779C7C0001107C0500F85400077A54A507387FC4F3787C97
-S31AFE0077B1052B7838C000004BFFF84D7C7E1B7848000058212A18
-S31AFE0077C6001F7D2949107D2048F8540006F6552907387D2903F9
-S31AFE0077DB782C0900007FCBF378380000783929FFFF4182001848
-S31AFE0077F02C090000980B0000396B00013929FFFF4082FFF028CA
-S31AFE0078050A001F4181000C3BDE0010480000083BDE00082C1F8E
-S31AFE00781A00464081FEE08001004C7C0803A6836100348381005A
-S31AFE00782F3883A1003C83C1004083E10044382100484E800020ED
-S31AFE0078449421FFD07C0802A67D8000269381002093A100249339
-S31AFE007859C1002893E1002C900100349181001C88030000386374
-S31AFE00786E00012C0000507C9D237890610008392000003BC00083
-S31AFE0078834740820070386100083881000C4BFFFAE12C030000B9
-S31AFE007898418200288121000888090000392900012C00003D9154
-S31AFE0078AD210008408200108121000C3BC90001480000383D2037
-S31AFE0078C2FE01880931887FA4EB782C0000003969318841820094
-S31AFE0078D7D8880B0000980400008D2B0001388400012C090000E6
-S31AFE0078EC4082FFEC480000BC7D3F4B787C1FF000408000803B4D
-S31AFE007901800000397FFFE020AB001F7CA52910392100103881EF
-S31AFE007916000C7CA028F87C8428787CA9483854A5077A540007F6
-S31AFE00792B38806100082A0B001F7CA503787D24237893810010D2
-S31AFE00794038C000004BFFF96D808100107FE3FB7848001B2541D7
-S31AFE00795591001081210008392900104800000C812100083929FC
-S31AFE00796A0008912100083BFF00017C1FF0004180FF8C3D20FED5
-S31AFE00797F018809318C7FA4EB782C0000003969318C4182001CB0
-S31AFE007994880B0000980400008D2B0001388400012C09000040C0
-S31AFE0079A982FFEC3800000098040000800100348181001C7C082D
-S31AFE0079BE03A68381002083A1002483C1002883E1002C7D808121
-S31AFE0079D320382100304E8000209421FF287C0802A693A100CCFC
-S31AFE0079E893C100D093E100D4900100DC3BC000003D6000017C98
-S31AFE0079FD7D1B789BCB88B4893D00003809FFC12800003B4181D3
-S31AFE007A1208B43D60FE01396B31E05400103A7D4B002E3D20FE5F
-S31AFE007A2701392931E07D4A4A147D4903A64E8004204800781973
-S31AFE007A3C4800774D3D20FE01392931705460E73E7D0900AE5465
-S31AFE007A5163073E7CE918AE3D40000138000053392A88B4980AFF
-S31AFE007A6688B439600000996900039909000198E90002480008B7
-S31AFE007A7B603FA00001387D88B43880080038A000204BFFF96D59
-S31AFE007A903BBD88B4380000007C1D19AE4800083C3D20FE0188A1
-S31AFE007AA50931903D6000012C000000396B88B43949319041824E
-S31AFE007ABA07E8880A00008D2A0001980B00002C090000396B00FE
-S31AFE007ACF014082FFEC480007CC387D000148000B9D480007F8E8
-S31AFE007AE4387D000148000D61480007EC3C600001386388B44B23
-S31AFE007AF9FFFBD5480007DC881D00012C0000004082004048005E
-S31AFE007B0E09313D20FE018809318C3D6000012C000000396B8884
-S31AFE007B23B43949318C41820778880A00008D2A0001980B000027
-S31AFE007B382C090000396B00014082FFEC4800075C381D0001901C
-S31AFE007B4D0100883BC1008C3BE100887FE3FB787FC4F3784BFF9D
-S31AFE007B62F8112C030000418200A481210088880900003929004E
-S31AFE007B77012C00002C912100884082008C7FE3FB7838810090F6
-S31AFE007B8C4BFFF7E52C030000418200788121008888090000395C
-S31AFE007BA12900012C00002C91210088408200608081008C2C0430
-S31AFE007BB600004182003880610090480008BD7C641B7941820006
-S31AFE007BCB148061008880A1008C38C000004BFFF6D98001008C59
-S31AFE007BE0812100887C0002147D29021491210088812100888828
-S31AFE007BF50900002C00002C4082001038090001900100884BFF9F
-S31AFE007C0AFF5081210088880900002C0000004082003C3D20FED2
-S31AFE007C1F018809318C3D6000012C000000396B88B43949318C14
-S31AFE007C344182066C880A00008D2A0001980B00002C09000039A7
-S31AFE007C496B00014082FFEC480006503D20FE01880931D03D60E0
-S31AFE007C5E00012C000000396B88B4394931D041820634880A00EE
-S31AFE007C73008D2A0001980B00002C090000396B00014082FFEC16
-S31AFE007C88480006183C8000017FA3EB78388488B44BFFFBAD4809
-S31AFE007C9D00063C381D00013BE10094900100947FE3FB783881D3
-S31AFE007CB200984BFFF6BD2C0300004182009081210094880900DB
-S31AFE007CC700392900012C00002C91210094408200787FE3FB7894
-S31AFE007CDC3881009C4BFFF6912C03000041820064806100983C5E
-S31AFE007CF180000180A1009C388488B438C000014BFFF3052C03DA
-S31AFE007D060000408205D03D60FE01880B31D43D2000012C00000F
-S31AFE007D1B00394988B4396B31D44182001C880B00008D2B0001BD
-S31AFE007D30980A00002C090000394A00014082FFEC380000009862
-S31AFE007D450A0000480005903D20FE01880931D03D6000012C0086
-S31AFE007D5A0000396B88B4394931D04182053C880A00008D2A0060
-S31AFE007D6F01980B00002C090000396B00014082FFEC4800052063
-S31AFE007D843BC00001381D00013BE100A0900100A07FE3FB78389A
-S31AFE007D998100A44BFFF5D52C030000418201F8812100A08809DA
-S31AFE007DAE0000392900012C00002C912100A0408201E07FE3FBAF
-S31AFE007DC378388100A84BFFF5A92C030000418201CC806100A0A6
-S31AFE007DD888030000386300012C00003A906100A0408201B42CD1
-S31AFE007DED1E000041820124800100A82C000000418200A8800136
-S31AFE007E0200A83BA000007C1D0040408000543941000881610093
-S31AFE007E17A0892B0000396B00017D204B782C00007D7D2AE9AE12
-S31AFE007E2C916100A040820018880B0000392B0001600000207CDD
-S31AFE007E410AE9AE912100A03BBD0001281D007F41810010800125
-S31AFE007E5600A87C1D00404180FFB8808100A4386100087FA5EBC5
-S31AFE007E6B78480022797C03E80040820024812100A8800100A4E7
-S31AFE007E807D3D48502C0900007C00EA14900100A4912100A84019
-S31AFE007E9582FF6C800100A82C0000004082003C3D20FE018809A7
-S31AFE007EAA318C3D6000012C000000396B88B43949318C41820353
-S31AFE007EBFE4880A00008D2A0001980B00002C090000396B0001FF
-S31AFE007ED44082FFEC480003C83D20FE01880931D43D6000012C19
-S31AFE007EE9000000396B88B4394931D4418203AC880A00008D2A5E
-S31AFE007EFE0001980B00002C090000396B00014082FFEC480003F5
-S31AFE007F1390808100A480A100A838C000014BFFF3912C03000061
-S31AFE007F284182003C3D20FE018809318C3D6000012C0000003994
-S31AFE007F3D6B88B43949318C4182035C880A00008D2A0001980B36
-S31AFE007F5200002C090000396B00014082FFEC480003403D20FEA9
-S31AFE007F6701880931D43D6000012C000000396B88B4394931D439
-S31AFE007F7C41820324880A00008D2A0001980B00002C09000039A7
-S31AFE007F916B00014082FFEC480003083D20FE01880931D83D60D8
-S31AFE007FA600012C000000396B88B4394931D8418202EC880A00E7
-S31AFE007FBB008D2A0001980B00002C090000396B00014082FFECCB
-S31AFE007FD0480002D0881D0000395D000168090053216900007D77
-S31AFE007FE52B491468000043216000007C0B01147C0B4B7939604F
-S31AFE007FFA0000914100AC916100B03BE100AC418200287FE3FB3E
-S31AFE00800F78388100B04BFFF35D812100AC880900002C00003B97
-S31AFE0080244082000C38090001900100AC7FE3FB78388100B44B69
-S31AFE008039FFF3392C0300004182000C806100B44800721D386001
-S31AFE00804E000348001EC93860000348001E59806100B02C0300CD
-S31AFE008063004182004C3D2000008009367C2C0000004182001C52
-S31AFE0080788009367C7C0803A64E8000217C631B794082000890CB
-S31AFE00808D6100B0800100B02C00000041820018380000099001BF
-S31AFE0080A200B0386000094800033D48000238480015892C030055
-S31AFE0080B7004182001838000063981D00003D20000038000001EF
-S31AFE0080CC900936A4881D000068090053216900007D2B491468C8
-S31AFE0080E1000073216000007C0B01147C0B4B794182002438602C
-S31AFE0080F600004BFFF39D3D20000139291CE43D600000912B3648
-S31AFE00810BA0480071814800000C386000014BFFF37D386000033F
-S31AFE00812048001DF93860000348001D893860FFFF480001B83D8B
-S31AFE008135200000800936787C0803A64E800021386000014800DD
-S31AFE00814A01A048001BB5480001883C800001387D0001388488DB
-S31AFE00815FB438A0012C48000E11480001703C800001387D0001BB
-S31AFE008174388488B438A0012C48000D8148000158381D00019098
-S31AFE0081890100B8386100B8388100BC4BFFF1DD2C030000418254
-S31AFE00819E007C812100B888090000392900012C00002C912100F4
-S31AFE0081B3B84082006488090000392900012C000043912100B808
-S31AFE0081C840820010806100BC480027354800000C806100BC4852
-S31AFE0081DD0027213D20FE018809318C3D6000012C000000396B29
-S31AFE0081F288B43949318C418200A8880A00008D2A0001980B00A1
-S31AFE008207002C090000396B00014082FFEC4800008C3D20FE01A7
-S31AFE00821C880931D03D6000012C000000396B88B4394931D04149
-S31AFE008231820070880A00008D2A0001980B00002C090000396B7C
-S31AFE00824600014082FFEC48000054381D0001900100C038610095
-S31AFE00825BC0388100C44BFFF1112C030000408200443D20FE01F0
-S31AFE008270880931DC3D6000012C000000396B88B4394931DC41DD
-S31AFE00828582001C880A00008D2A0001980B00002C090000396B7C
-S31AFE00829A00014082FFEC38000000980B0000480000303C60FE30
-S31AFE0082AF013863318C4BFFEAF9806100C4480012414800001890
-S31AFE0082C43C8000017FA3EB78388488B438A0012C48001E753C4B
-S31AFE0082D9600001386388B44BFFEACD38600000800100DC7C08DA
-S31AFE0082EE03A683A100CC83C100D083E100D4382100D84E800093
-S31AFE008303209421FFE87C0802A693A1000C93C1001093E100144D
-S31AFE0083189001001C3FA00001389D88B448001A1D387D88B44BF3
-S31AFE00832DFFEA818001001C7C0803A683A1000C83C1001083E11B
-S31AFE0083420014382100184E8000209421FFF07C0802A693E1006B
-S31AFE0083570C900100143D200000800936882C00000040800008C4
-S31AFE00836C4BFFFF993FE00001387F80B44BFFE86D387F80B44B36
-S31AFE008381FFF65D7C631B794182FFEC7C6318F854630FFE80013C
-S31AFE00839600147C0803A683E1000C382100104E8000204E8000F8
-S31AFE0083AB209421FFF87C0802A69001000C4BFFEF8D48001849B5
-S31AFE0083C03860002B480010C58001000C7C0803A6382100084E5B
-S31AFE0083D58000203D200000906936884E8000209421FFF87C08BD
-S31AFE0083EA02A69001000C3D20FE01392931705460E73E7D490037
-S31AFE0083FFAE5463073E7D0918AE3D60000138000058386B88B462
-S31AFE008414980B88B4392000009943000199030002992300034B92
-S31AFE008429FFE9858001000C7C0803A6382100084E8000203D2067
-S31AFE00843E000138A00000392991043CC0000038E0FFFF3C800087
-S31AFE008453003D6000013D4000003D0000003800000190E639646C
-S31AFE00846890AB90B4912A39689008369890A439604E800020946B
-S31AFE00847D21FFF07C0802A693C1000893E1000C900100143D20CC
-S31AFE0084920000800936987C7F1B782C0000007C9E237840820049
-S31AFE0084A7084BFFFF952C1F0012418100243D600000800B3968CA
-S31AFE0084BC3D200001392991047C0900507C00F214280000804013
-S31AFE0084D181000C386000004800006C3CE00000800739647C1FDE
-S31AFE0084E600004182004C3D000000800839607C1F0000418000B4
-S31AFE0084FB20395F00013D200001392990B4554B103A3800000089
-S31AFE0085107C09592E914839603D600000814B39683D2000013933
-S31AFE0085252990B457E0103A7D49012E93E739643D2000008069FD
-S31AFE00853A39687C03F21490093968800100147C0803A683C100C2
-S31AFE00854F0883E1000C382100104E8000209421FFD87C0802A68C
-S31AFE008564936100149381001893A1001C93C1002093E1002490DE
-S31AFE00857901002C3D600000800B369C7C7D1B782C0000007C9EF0
-S31AFE00858E23787CBF2B7840820058380000013D200001392991B7
-S31AFE0085A384900B369C39400000380000087C0903A6390A0001A3
-S31AFE0085B8554BC00E5547103A2C0B00005560083C4080000C6CEE
-S31AFE0085CD0004C168001DB77C0B03784200FFE87D0A4378280AF5
-S31AFE0085E200FF7C09392E4081FFC43D600000380000003D2000DF
-S31AFE0085F7013B699184900B368C3F800000480000248921000877
-S31AFE00860C57E0463E7C004A785400103A7D7B002E57E9402E7D6D
-S31AFE0086213F5A783BBD00012C1E00003BDEFFFF41820020386159
-S31AFE00863600087FA4EB7838A0000148001A45801C368C2C000093
-S31AFE00864B004182FFBC7FE3FB788001002C7C0803A683610014F1
-S31AFE0086608381001883A1001C83C1002083E10024382100284EEA
-S31AFE0086758000209421FFD87C0802A693A1001C93C1002093E15C
-S31AFE00868A00249001002C3D20000138000000980988B43BA98817
-S31AFE00869FB47C691B7890610008880900002C000043408200F4E7
-S31AFE0086B4880900012C000052408200E88BC900022C1E004340D0
-S31AFE0086C98200DC880900032C00003A408200D0380900043BE14D
-S31AFE0086DE0008900100087FE3FB783881000C4BFFEC852C03005E
-S31AFE0086F300418201388121000888090000392900012C00002C7C
-S31AFE00870891210008408201207FE3FB78388100104BFFEC592C62
-S31AFE00871D0300004182010C8061000C8081001038A0FFFF4BFF52
-S31AFE008732FE2D3D20000083E9368C2C1F0000418200403D20FECF
-S31AFE00874701880931D07FA3EB782C000000396931D04182001C53
-S31AFE00875C880B00008D2B0001980300002C09000038630001400C
-S31AFE00877182FFEC3800000098030000480000B07C641B78387D8F
-S31AFE008786000138A000204BFFEC6D3D2000019BC988B4386300A5
-S31AFE00879B017FFD19AE4800008C81210008880900007D2B4B7807
-S31AFE0087B02C00004C386900017C09037841820020418100102CB5
-S31AFE0087C50000434182003C4800004C2C0900504182001C480019
-S31AFE0087DA00403C800001388488B438A0012C4800095D48000096
-S31AFE0087EF403C800001388488B438A0012C48000A914800002C20
-S31AFE0088043C800001388488B438A00800480005FD480000183CE0
-S31AFE0088198000017D635B78388488B438A0012C48001911800122
-S31AFE00882E002C7C0803A683A1001C83C1002083E1002438210053
-S31AFE008843284E8000209421FFF87C0802A69001000C8803000006
-S31AFE0088582C000070408200183C800001388488B438A0012C488F
-S31AFE00886D000709480000143C800001388488B438A0012C480084
-S31AFE00888218C18001000C7C0803A6382100084E8000203923019E
-S31AFE0088971C7C0348404C800020800400003884000490030000E2
-S31AFE0088AC386300047C0348404180FFEC4E80002038000045985E
-S31AFE0088C1030000392000309D230001380000329C0300013863AC
-S31AFE0088D600014E8000203800004F980300003920004B9D230014
-S31AFE0088EB01386300014E8000209421FFE87C0802A693A1000CE1
-S31AFE00890093C1001093E100149001001C7C9E23797C7D1B783B48
-S31AFE008915E0000041820038887D00003BBD00014BFFE27937DEB6
-S31AFE00892AFFFF7FFF1B7857E920367C00002654001FFE7C000000
-S31AFE00893FD07D2900787FE000387C1F4B784082FFD07FE3FB78D6
-S31AFE0089548001001C7C0803A683A1000C83C1001083E10014380C
-S31AFE0089692100184E8000209421FFE87C0802A69381000893A1B6
-S31AFE00897E000C93C1001093E100149001001C7C7D1B787C9C2374
-S31AFE00899378388000024BFFFF5D907C0000387D00028001001C93
-S31AFE0089A87C0803A68381000883A1000C83C1001083E100143849
-S31AFE0089BD2100184E8000209421FFE87C0802A69381000893A162
-S31AFE0089D2000C93C1001093E100149001001C7C7D1B787C9C2320
-S31AFE0089E778388000084BFFFF09907C0000387D00088001001C87
-S31AFE0089FC7C0803A68381000883A1000C83C1001083E1001438F5
-S31AFE008A112100184E8000203803FF9F280000054181001438030E
-S31AFE008A26FFA990040000386000014E8000203803FFBF28000053
-S31AFE008A3B054181000C3803FFC94BFFFFE43863FFD05460063EBD
-S31AFE008A50280000094081000C386000004E80002090640000385D
-S31AFE008A656000014E8000209421FFE87C0802A693A1000C93C14D
-S31AFE008A7A001093E100149001001C7C7D1B78887D00003BBD0015
-S31AFE008A8F014BFFFF897FA3EB788001001C7C0803A683A1000C7C
-S31AFE008AA483C1001083E10014382100184E8000203D20FE0154DE
-S31AFE008AB980E13E392932D07D6900AE5484073E7C0920AE9963A1
-S31AFE008ACE00009C030001386300014E8000209421FFE07C08024B
-S31AFE008AE3A69381001093A1001493C1001893E1001C90010024B7
-S31AFE008AF87C7F1B787C9C23783BC000003BA10008480000188065
-S31AFE008B0D01000857DE20365400073E7FDE03783BFF0001887F08
-S31AFE008B2200007FA4EB784BFFFEF12C0300004082FFDC93DC0040
-S31AFE008B37007FE3FB78800100247C0803A68381001083A1001432
-S31AFE008B4C83C1001883E1001C382100204E8000209421FFE87CB5
-S31AFE008B610802A69381000893A1000C93C1001093E10014900172
-S31AFE008B76001C7C7F1B783B9F00107C1FE0407C9E237840800022
-S31AFE008B8B38887F00004BFFE00D8C1F00017C7D1B787C03037829
-S31AFE008BA04BFFDFFD57BD20363BFF00017FBD1B787C1FE0409BCC
-S31AFE008BB5BE00003BDE00014180FFD07FE3FB788001001C7C0849
-S31AFE008BCA03A68381000883A1000C83C1001083E1001438210088
-S31AFE008BDF184E8000209421FFE87C0802A693A1000C93C100100B
-S31AFE008BF493E100149001001C7C9D237857A4463E4BFFFEB157B0
-S31AFE008C09A4863E4BFFFEA957A4C63E4BFFFEA157A4063E4BFF88
-S31AFE008C1EFE998001001C7C0803A683A1000C83C1001083E100F4
-S31AFE008C3314382100184E8000209421FFE87C0802A693A1000CAD
-S31AFE008C4893C1001093E100149001001C7C9E2378881E00003BE4
-S31AFE008C5DE000002C000000393E0001418200207FFDFB78880917
-S31AFE008C7200003BBD00012C000000392900014082FFF07FBFEB87
-S31AFE008C87782F9F00C97C0000265400EFFE7C0000D07C0900F819
-S31AFE008C9C7FE00038712900C87C1F4B7857E4063E7FFDFB784BAF
-S31AFE008CB1FFFE052C1D00003BFFFFFF4081005C7FFDFB787FC4D8
-S31AFE008CC6F378896400007FAAEB78210B00007C085914696900C2
-S31AFE008CDB23210900007D2849147C004B783000FFFF7C00011037
-S31AFE008CF07C0900F87129002A7D6B00387D6B4B782C0A00009990
-S31AFE008D0563000038840001386300013BBDFFFF4181FFB48001AD
-S31AFE008D1A001C7C0803A683A1000C83C1001083E10014382100A2
-S31AFE008D2F184E8000209421FFF07C0802A693C1000893E1000C79
-S31AFE008D44900100143BC300107C03F0407C9F237840800018889E
-S31AFE008D599F00003BFF00014BFFFD557C03F0404180FFF08001AB
-S31AFE008D6E00147C0803A683C1000883E1000C382100104E8000B8
-S31AFE008D8320392000047D2903A63800000098030000386300019C
-S31AFE008D984200FFF87C80C670980300007C8986709D2300017C84
-S31AFE008DAD8046709C030001988300014E80002039630004386095
-S31AFE008DC20000394000037D405378892B00002C000000546040C0
-S31AFE008DD72E7C034B78396B0001394AFFFF4181FFE44E8000205A
-S31AFE008DEC380000087C0903A688040000388400019803000038E4
-S31AFE008E016300014200FFF04E8000209421FFE87C0802A693C1B9
-S31AFE008E16001093E100149001001C3BC100087C9F23787FC3F30F
-S31AFE008E2B7848001AED2C0300004182003038000051981F000005
-S31AFE008E40392000439D3F00017FC3F3784BFFFF717C641B783B8B
-S31AFE008E55FF00017FE3FB784BFFFD894800000C7FE3FB784BFFEC
-S31AFE008E6AFA557C7F1B7838000000981F00008001001C7C0803FF
-S31AFE008E7FA683C1001083E10014382100184E8000209421FFC88D
-S31AFE008E947C0802A693A1002C93C1003093E100349001003C3B05
-S31AFE008EA9A100207C641B787FA3EB784BFFFED17FA3EB783881A0
-S31AFE008EBE000848001B012C030000418200148001001038600000
-S31AFE008ED3012C00000040820008386000008001003C7C0803A60D
-S31AFE008EE883A1002C83C1003083E10034382100384E8000209402
-S31AFE008EFD21FFE07C0802A693A1001493C1001893E1001C90015B
-S31AFE008F1200247C7D1B787C9F2378388100084BFFFBBD7C1D186C
-S31AFE008F270041820020806100084BFFFF612C03000041820010B9
-S31AFE008F3C7FE3FB784BFFF99D4800000C7FE3FB784BFFF9713852
-S31AFE008F5100000098030000800100247C0803A683A1001483C11E
-S31AFE008F66001883E1001C382100204E8000209421FFD87C0802E1
-S31AFE008F7BA693A1001C93C1002093E100249001002C8923000072
-S31AFE008F903800FFFF2C0900677C9F2378900100083863000141CA
-S31AFE008FA582008C418100102C09006341820024480000C02C0917
-S31AFE008FBA0070408200B8388100084BFFFAA9388100104BFFFBF8
-S31AFE008FCF91480000B0880300002C00002D4082002088030001AE
-S31AFE008FE42C000031408200143D20000038000000900939904802
-S31AFE008FF90000103C800000388439904BFFFAD93D2000008069AB
-S31AFE00900E39902C030000418200104BFFFE792C030000418200CB
-S31AFE009023547FE3FB784BFFF8B5480000503FA00000389D398C03
-S31AFE0090384BFFFAA5809D398C386100104BFFFD41801D398C2C95
-S31AFE00904D00FFFF4182000C2C0000004082001038000002900174
-S31AFE00906200084800001C3800000190010008480000107FE3FB02
-S31AFE009077784BFFF8457C7F1B78800100082C00000041820028B3
-S31AFE00908C418100102C00FFFF4182008C4800007C2C000001414E
-S31AFE0090A18200242C00000241820060480000683D20000139294F
-S31AFE0090B61CE43D600000912B36A0480000603FA000013C80002E
-S31AFE0090CB0138841CE4387D1E004BFFF7C1386100103880004752
-S31AFE0090E038BD1E00480019352C03000041820028381D1E003D04
-S31AFE0090F52000007FE3FB78900936A04BFFF7DD480000187FE31E
-S31AFE00910AFB784BFFF7D14800000C7FE3FB784BFFF7A57C7F1BA2
-S31AFE00911F7838000000981F00008001002C7C0803A683A1001CB6
-S31AFE00913483C1002083E10024382100284E8000209421FFD07CC7
-S31AFE0091490802A693210014934100189361001C9381002093A131
-S31AFE00915E002493C1002893E1002C900100347C9F23787CBD2BD9
-S31AFE00917378388100084BFFF8F53881000C3F8000004BFFF7EDC1
-S31AFE009188389C397C4BFFF9D1380000513BBDFFE67F3FEA149877
-S31AFE00919D1F00003920004D9D3F00013BFF00017FFAFB787F432E
-S31AFE0091B2D378388000004BFFF8FD7C7F1B787FFEFB78380000AC
-S31AFE0091C730389C397C981E0000387E00014BFFFB617C7F1B7835
-S31AFE0091DC3B8000003F600000480000247FE3FB78389D39844B02
-S31AFE0091F1FFFB457C7F1B78389D39843B9C0001387B397C4BFF7C
-S31AFE009206FBE97C1FC840408000408001000C7C1C0000408000E3
-S31AFE00921B34806100083C8000003FA000003884397C38BD39845F
-S31AFE009230480017352C03000038000000900100084082FFA838F0
-S31AFE009245000031981E00007F43D3785784063E4BFFF861380022
-S31AFE00925A0000981F0000800100347C0803A683210014834100E6
-S31AFE00926F188361001C8381002083A1002483C1002883E1002C66
-S31AFE009284382100304E8000209421FFC07C0802A693A1003493BF
-S31AFE009299C1003893E1003C90010044380000007C9F23789001BF
-S31AFE0092AE001C900100109001001490010018388100204BFFF782
-S31AFE0092C3053BA100287FA4EB784BFFF8917FA3EB7838810008EA
-S31AFE0092D8480016E92C030000418200E438000071981F000039C7
-S31AFE0092ED2000709D3F000180810020387F00014BFFF8E938813E
-S31AFE00930200084BFFFA31800100207C7F1B787009000241820068
-S31AFE00931720388000024BFFF8C9388000024BFFF79188810013B0
-S31AFE00932C4BFFF7897C7F1B788001002070090004418200288047
-S31AFE0093410100142C0000004182001C7FE3FB78388000044BFF18
-S31AFE009356F891808100144BFFF8E17C7F1B788001002070090095
-S31AFE00936B0841820028800100182C0000004182001C7FE3FB787D
-S31AFE009380388000084BFFF861808100184BFFF8B17C7F1B788057
-S31AFE00939501002070090010418200348001001C2C000000418292
-S31AFE0093AA00287FE3FB78388000104BFFF8318081001C4BFFF813
-S31AFE0093BF814800000C7FE3FB784BFFF4F57C7F1B7838000000F2
-S31AFE0093D4981F0000800100447C0803A683A1003483C100388380
-S31AFE0093E9E1003C382100404E8000209421FFD87C0802A693611B
-S31AFE0093FE00149381001893A1001C93C1002093E1002490010029
-S31AFE0094132C3B8100087C7D1B787C9B23787CA42B787F83E378F2
-S31AFE0094284BFFF95D7F83E3787FA4EB787F65DB784800163D8056
-S31AFE00943D01002C7C0803A6836100148381001883A1001C83C124
-S31AFE009452002083E10024382100284E8000203D2000008169366D
-S31AFE009467A05463103A7C63582E4E8000203D200000816936A0DB
-S31AFE00947C5463103A7C83592E4E8000209421FFF87C0802A690FA
-S31AFE00949101000C3D20000039293200816900185464063E806BDB
-S31AFE0094A60000800B000C7C0803A64E8000218001000C7C0803E6
-S31AFE0094BBA6382100084E8000209421FFF87C0802A69001000C2E
-S31AFE0094D03D2000003929320081690018806B0000800B00107C8E
-S31AFE0094E50803A64E8000218001000C7C0803A6382100084E80E5
-S31AFE0094FA00209421FFF87C0802A69001000C3D200000392932D3
-S31AFE00950F00816900187C651B78806B0000800B0014388000008B
-S31AFE0095247C0803A64E8000218001000C7C0803A6382100084EA9
-S31AFE0095398000209421FFE87C0802A693A1000C93C1001093E199
-S31AFE00954E00149001001C3FC00000817E39943D2000002C0B00E4
-S31AFE00956300380000003BBE3994900936A47C7F1B784182001815
-S31AFE0095787D635B7848000055801E39942C0000004082002C8184
-S31AFE00958D3F00003C007D82913D000460001008901F000093FEC1
-S31AFE0095A239943860000348000971386000034800090180010018
-S31AFE0095B71C7C0803A683A1000C83C1001083E1001438210018E5
-S31AFE0095CC4E8000209421FFF87C0802A69001000C3D2000008145
-S31AFE0095E16936A42C0B0000408200183D200000800939943949E8
-S31AFE0095F639947C0300004182000C3860000048000024800A00B3
-S31AFE00960B04916939949003000038600003480009013860000360
-S31AFE00962048000891386000018001000C7C0803A6382100084E4E
-S31AFE0096358000203D200000800939943120FFFF7C6901104E80B6
-S31AFE00964A00209421FFF87C0802A69001000C2C03000041820080
-S31AFE00965F483D400000812A36A83929FFFF2C090000912A36A876
-S31AFE009674418100683D20000039293200816900183800000090F8
-S31AFE0096890A36A8806B0000800B0014388000057C0803A64E809E
-S31AFE00969E00214800003C3D600000812B36A8392900012C09004F
-S31AFE0096B301912B36A8408200243D20000039293200816900182A
-S31AFE0096C838800004806B0000800B00147C0803A64E80002180A7
-S31AFE0096DD01000C7C0803A6382100084E8000209421FFF87C08BB
-S31AFE0096F202A69001000C3D2000003929320081690018806B003C
-S31AFE00970700800B00107C0803A64E8000218001000C7C0803A6D8
-S31AFE00971C382100084E8000209421FFC87C0802A692C100109248
-S31AFE009731E10014930100189321001C934100209361002493818E
-S31AFE009746002893A1002C93C1003093E100349001003C2C040059
-S31AFE00975B0D418201B43D600000814B36AC3D200001392995844C
-S31AFE0097707C8951AE2C04000A394A0001914B36AC3F40000041A0
-S31AFE00978582000C2C0A0064408201843D2000003929320083C91F
-S31AFE00979A00187EE000A67EE0BB7839600000516004207C00011E
-S31AFE0097AF243D20FE013AC932E4807E0000813E000C3880002463
-S31AFE0097C47D2803A63B6000003BE0004F4E800021807E000081CB
-S31AFE0097D93E000C3880004F7D2803A64E800021801A36AC7C1BD6
-S31AFE0097EE0000408000703D2000013D60FE013B0995843B2B3243
-S31AFE009803E47D38D8AE807E00005520E13E7F9900AE817E000CCA
-S31AFE0098187F84E3787D6803A65529073E7FB948AE3B7B00014E55
-S31AFE00982D800021807E0000813E000C7FA4EB787D2803A64E8016
-S31AFE0098420021801A36AC7F9FE214579F063E7C1B00007FBFEA63
-S31AFE0098571457BF063E4180FFA8807E0000813E000C388000237E
-S31AFE00986C7D2803A64E800021807E0000813E000C57E0E13E7C0B
-S31AFE0098819600AE7D2803A64E800021807E0000813E000C57E04D
-S31AFE009896073E7C9600AE7D2803A64E800021807E0000813E00BA
-S31AFE0098AB107D2803A64E8000215460063E2C00002B9861000807
-S31AFE0098C0418200383861000838800001480016552C0300004018
-S31AFE0098D5820014880100082C00002D4082FFC44BFFFED43D20FC
-S31AFE0098EA00003929320038000001900900443D600000392000C5
-S31AFE0098FF00912B36AC7C0000A652E004207C0001248001003CDC
-S31AFE0099147C0803A682C1001082E10014830100188321001C8364
-S31AFE009929410020836100248381002883A1002C83C1003083E168
-S31AFE00993E0034382100384E8000209421FFE87C0802A693A10061
-S31AFE0099530C93C1001093E100149001001C7CBF2B787FE0FB78A6
-S31AFE0099682C0000007C7D1B787C9E23783BFFFFFF4182002488D2
-S31AFE00997D9E00007FA3EB784BFFFDA17FE0FB782C0000003BDEAF
-S31AFE00999200013BFFFFFF4082FFE48001001C7C0803A683A100F0
-S31AFE0099A70C83C1001083E10014382100184E8000209421FFE8D4
-S31AFE0099BC7C0802A693A1000C93C1001093E100149001001C7C11
-S31AFE0099D1BF2B787FE0FB782C0000007C7D1B787C9E23783BFFA2
-S31AFE0099E6FFFF418200247FA3EB784BFFFCFD7FE0FB782C0000BD
-S31AFE0099FB00987E00003BDE00013BFFFFFF4082FFE48001001CA9
-S31AFE009A107C0803A683A1000C83C1001083E10014382100184E55
-S31AFE009A258000209421FF909081000C90A1001090C1001490E110
-S31AFE009A3A00189101001C91210020914100243860000038210094
-S31AFE009A4F704E8000209421FFF87C0802A69001000C3860000093
-S31AFE009A644BFFFBE93D600001380000207C0903A63D20000081B9
-S31AFE009A794939A0396B1CE43D000000392000007C09502E7C09F0
-S31AFE009A8E592E392900044200FFF47D6A5B783D20000081693963
-S31AFE009AA3A0800B0094900A0100812B0090912A0104800B008049
-S31AFE009AB8900A0108812B0088912A010C800B008C900A011081B3
-S31AFE009ACD2B0084912A01143D4000003D600000800B36A43D2025
-S31AFE009AE200012C00000039291CE4912A36A04182001838000038
-S31AFE009AF700900836A4386000404BFFF9614BFFFACD386000407F
-S31AFE009B0C4BFFF9554BFFFAC13D200000906939A48001000C7C67
-S31AFE009B210803A6382100084E8000209421FFF87C0802A69001C2
-S31AFE009B36000C380000207C0903A63D200000814939A03D6000E7
-S31AFE009B4B01396B1CE4392000007C09582E7C09512E392900048E
-S31AFE009B604200FFF47D6A5B783D200000816939A0800A010090C2
-S31AFE009B750B0094812A0104912B0090800A0108900B0080812AE3
-S31AFE009B8A010C912B0088800A0110900B008C812A0114912B0033
-S31AFE009B9F84386000014BFFFAA98001000C7C0803A63821000888
-S31AFE009BB44E800020386000004E8000203D20FE0139299BB83DD6
-S31AFE009BC9400000912A367C3D60FE01396B9D003D2000009169A2
-S31AFE009BDE36783D40FE013D600000394A9A54914B36843D20FE45
-S31AFE009BF30139299B2C3D600000912B36804E8000209421FFF08E
-S31AFE009C087C0802A693C1000893E1000C900100143D20000080B9
-S31AFE009C1D0936B02C000000408200C438000001900936B048008D
-S31AFE009C3257513D2000003BC93200813E00343860FFFF7D2803AD
-S31AFE009C47A64E800021813E00347C7F1B783860FFFD7D2803A60C
-S31AFE009C5C4E800021815E00143D20FE0139299948912A00043D72
-S31AFE009C7160FE016FE0FFFF396B99B86800FFFE3D20FE01916A7D
-S31AFE009C860008392997243100FFFF7CE80110912A000C3D60FE9A
-S31AFE009C9B01301FFFFF7D00F910396B96EC3D20FE017CE0403985
-S31AFE009CB0916A001039299A28912A001441820014813E00347F54
-S31AFE009CC5E3FB787D2803A64E800021801E0030386000007C0809
-S31AFE009CDA03A64E800021386000044BFFCE01800100147C080308
-S31AFE009CEFA683C1000883E1000C382100104E8000209421FFF8F7
-S31AFE009D047C0802A69001000C3D20000039293200800900402C97
-S31AFE009D190000004182000C7C0803A64E8000218001000C7C0835
-S31AFE009D2E03A6382100084E8000207FE000084E8000209421FF1B
-S31AFE009D43D87C0802A6936100149381001893A1001C93C100200B
-S31AFE009D5893E100249001002C7C9D23787C7C1B7838000054983A
-S31AFE009D6D1D00007F8326704BFFCDD99C7D00017F83E3784BFF77
-S31AFE009D82CDCD7FBFEB789C7F0001380000749C1F0001392000B0
-S31AFE009D97689D3F0001380000729C1F0001392000659D3F00016D
-S31AFE009DAC380000619C1F0001392000643BA0003A9D3F00019FFB
-S31AFE009DC1BF000148000D0D906100083BFF00017FE4FB783861C4
-S31AFE009DD6000838A0000438C000004BFFD2257C7F1B783B80000E
-S31AFE009DEB3B9B9F0000386000044BFFCD599C7F000138600040EA
-S31AFE009E004BFFCD4D9C7F00019FBF0001386000404BFFF6513BC6
-S31AFE009E1561000C9061000C3BFF00017FE4FB787F63DB7838A0AC
-S31AFE009E2A000438C000004BFFD1D57C7F1B789B9F0000386000D3
-S31AFE009E3F004BFFCD0D9C7F0001386000014BFFCD019C7F0001FD
-S31AFE009E549FBF0001386000014BFFF6059061000C3BFF00017F01
-S31AFE009E69E4FB787F63DB7838A0000438C000004BFFD18D7C7FDD
-S31AFE009E7E1B7838000000981F00019B9F00008001002C7C0803DA
-S31AFE009E93A6836100148381001883A1001C83C1002083E10024D0
-S31AFE009EA8382100284E8000202C030001418200202803000141B2
-S31AFE009EBD8000502C030002418200242C03000341820030480037
-S31AFE009ED2003C3C0002004C00012C7C108BA64C00012C48000006
-S31AFE009EE7283C0004004C00012C7C108BA64C00012C48000014EF
-S31AFE009EFC3C000C004C00012C7C108BA64C00012C7C708AA654E6
-S31AFE009F11630FFE4E8000202C03000141820020280300014180D9
-S31AFE009F2600682C030002418200202C0300034182002848000041
-S31AFE009F3B543C0002007C0004AC7C188BA6480000443D6004005D
-S31AFE009F507C0004AC7D788BA648000034380000807C0903A6390B
-S31AFE009F65200000612010003D600E007C0004AC7D398BA67D787F
-S31AFE009F7A8BA67C198BA67D788BA6392900104200FFE07C788AA0
-S31AFE009F8FA654630FFE4E8000203D60000038000001900B368C2E
-S31AFE009FA43D2000008009399C3D60FE012C000000396BA0743D2C
-S31AFE009FB9200000916936B4418200A83D400000800A399C28001C
-S31AFE009FCE00034081003070800003408200287060000340820014
-S31AFE009FE320800300003863000490040000812A399C388400044F
-S31AFE009FF83929FFFC4800005C3D600000800B399C2800000140E9
-S31AFE00A00D810034708000014082002C7060000140820024A0034C
-S31AFE00A022000038630002B0040000812B399C388400023929FF34
-S31AFE00A037FE912B399C4800002088030000386300019804000056
-S31AFE00A04C812A399C388400013929FFFF912A399C800A399C2C43
-S31AFE00A0610000004082FF643D200000380000009009368C3D2074
-S31AFE00A076000038000000900936B44E8000209421FFE87C080206
-S31AFE00A08BA69381000893A1000C93C1001093E100149001001C21
-S31AFE00A0A07C601B787CBC2B787C8323783FA000007C0403789356
-S31AFE00A0B59D399C4BFFFEE1807D399C7C63E0508001001C7C08F5
-S31AFE00A0CA03A68381000883A1000C83C1001083E1001438210073
-S31AFE00A0DF184E8000209421FFE87C0802A69381000893A1000C3E
-S31AFE00A0F493C1001093E100149001001C7CBC2B783FA00000936D
-S31AFE00A1099D399C4BFFFE8D807D399C7C63E0508001001C7C08F4
-S31AFE00A11E03A68381000883A1000C83C1001083E100143821001E
-S31AFE00A133184E800020386000004E800020386000004E80002001
-S31AFE00A148386000004E8000209421FFF07C0802A693C1000893B9
-S31AFE00A15DE1000C900100143D200000800939AC2C00000041829D
-S31AFE00A17200603FE000003BC000007D4000A67D40537839200016
-S31AFE00A18700512004207C000124817F39AC800B0014808B0018E2
-S31AFE00A19C901F39AC93CB00187C0000A6514004207C00012481A7
-S31AFE00A1B12B000C80AB0010806B00007D2803A64E800021801F5C
-S31AFE00A1C639AC2C0000004082FFB0800100147C0803A683C100F8
-S31AFE00A1DB0883E1000C382100104E8000209421FFF87C0802A6C4
-S31AFE00A1F09001000C4BFFFF5D8001000C7C0803A6382100084EAA
-S31AFE00A20580002090690000380000009089000490A90010900970
-S31AFE00A21A00189128000090C9000890E9000C900900144E8000F9
-S31AFE00A22F20812300002C090000418200F8810300043809FFFF9B
-S31AFE00A24428000039418100E83D60FE01396B32F85400103A7D71
-S31AFE00A2594B002E3D20FE01392932F87D4A4A147D4903A64E8029
-S31AFE00A26E04203D20FF0061290200A16900007C0006AC556B06CD
-S31AFE00A2833E38000000600080007C0046307D600378540B043E81
-S31AFE00A298B16900007C0006AC480000903D20FF0061290240A1C4
-S31AFE00A2AD6900007C0006AC556B063E38000000600080007C0069
-S31AFE00A2C246307D600378540B043EB16900007C0006AC48000084
-S31AFE00A2D75C3D20FF0061290220A16900007C0006AC556B063ECE
-S31AFE00A2EC38000000600080007C0046307D600378540B043EB1A5
-S31AFE00A3016900007C0006AC480000283D20FF0061290940800984
-S31AFE00A31600007C0006AC540004DE550B68247C005B78900900F6
-S31AFE00A32B007C0006AC800300003D200000394933585408103A58
-S31AFE00A3407C0A402E3D20FE0039295DFC7C004800418200187CDF
-S31AFE00A3550A402E3D20FE013929AF987C0048004C82002080033D
-S31AFE00A36A00083D6000007C0A412E81430010396B34443D2000F3
-S31AFE00A37F007D4B412E392935307C69412E4E8000207C631B7912
-S31AFE00A3944D8200203803FFFF280000397C0803784D8100203DFD
-S31AFE00A3A960FE01396B33E05500103A7D4B002E3D20FE01392932
-S31AFE00A3BE33E07D4A4A147D4903A64E8004203D20FF0061290007
-S31AFE00A3D314816900007C0006AC3C0080007C0044307D6B007839
-S31AFE00A3E8916900007C0006AC4E8000203D20FF0061290200A0BE
-S31AFE00A3FD0900007C0006AC7000FFF75400043EB00900007C00DF
-S31AFE00A41206AC4E8000203D20FF0061290200A00900007C00067E
-S31AFE00A427AC7000FFFB5400043EB00900007C0006AC4E8000209B
-S31AFE00A43C3D20FF0061290240A00900007C0006AC7000FFFB544A
-S31AFE00A45100043EB00900007C0006AC4E8000203D20FF006129F5
-S31AFE00A4660220A00900007C0006AC7000FFF75400043EB009002F
-S31AFE00A47B007C0006AC4E8000203D20FF0061290220A0090000FB
-S31AFE00A4907C0006AC7000FFFB5400043EB00900007C0006AC4E50
-S31AFE00A4A58000203D20FF0061290940800900007C0006AC5400C4
-S31AFE00A4BA066E900900007C0006AC4E8000203D20FF0061290971
-S31AFE00A4CF48816900007C0006AC3943FFE53C0080007C005430F8
-S31AFE00A4E47D6B0078916900007C0006AC4E8000207C631B794D29
-S31AFE00A4F98200203803FFFF280000397C0803784D8100203D6084
-S31AFE00A50EFE01396B34C85500103A7D4B002E3D20FE013929340E
-S31AFE00A523C87D4A4A147D4903A64E8004203D20FF0061290014D7
-S31AFE00A538816900007C0006AC3C0080007C0044307D6B03789152
-S31AFE00A54D6900007C0006AC4E8000203D20FF0061290200A009DF
-S31AFE00A56200007C0006AC60000008B00900007C0006AC4E800095
-S31AFE00A577203D20FF0061290200A00900007C0006AC6000000488
-S31AFE00A58CB00900007C0006AC4E8000203D20FF0061290240A019
-S31AFE00A5A10900007C0006AC60000004B00900007C0006AC4E8051
-S31AFE00A5B600203D20FF0061290220A00900007C0006AC6000002D
-S31AFE00A5CB08B00900007C0006AC4E8000203D20FF006129022092
-S31AFE00A5E0A00900007C0006AC60000004B00900007C0006AC4EF2
-S31AFE00A5F58000203D20FF0061290940800900007C0006AC600067
-S31AFE00A60A0080900900007C0006AC4E8000203D20FF0061290913
-S31AFE00A61F48816900007C0006AC3943FFE53C0080007C005430A6
-S31AFE00A6347D6B0378916900007C0006AC4E8000207C631B794DD4
-S31AFE00A6498200203803FFFF280000397C0803784D8100203D6032
-S31AFE00A65EFE01396B35B05500103A7D4B002E3D20FE01392935D3
-S31AFE00A673B07D4A4A147D4903A64E8004203D20FF0061290010A2
-S31AFE00A688816900007C0006AC3C0080007C0044307D6B03789101
-S31AFE00A69D6900007C0006AC4E8000203D20FF0061290200A0098E
-S31AFE00A6B200007C0006AC60000080B00900007C0006AC4E8000CC
-S31AFE00A6C7203D20FF0061290200A00900007C0006AC60000040FB
-S31AFE00A6DCB00900007C0006AC4E8000203D20FF0061290240A0C8
-S31AFE00A6F10900007C0006AC60000080B00900007C0006AC4E8084
-S31AFE00A70600203D20FF0061290220A00900007C0006AC600000DB
-S31AFE00A71B80B00900007C0006AC4E8000203D20FF0061290220C8
-S31AFE00A730A00900007C0006AC60000040B00900007C0006AC4E64
-S31AFE00A7458000203D20FF006129094C816900007C0006AC39438C
-S31AFE00A75AFFE53C0080007C0054307D6B0378916900007C000667
-S31AFE00A76FAC4E8000207C8723787C631B794D8200203803FFFFFE
-S31AFE00A784280000397C0803784D8100203D60FE01396B3698550B
-S31AFE00A79900103A7D4B002E3D20FE01392936987D4A4A147D49F0
-S31AFE00A7AE03A64E8004203C0080007C0044303D60FF00616B00E3
-S31AFE00A7C318808B00007C0006AC7C8400787CEAFE707D493A7868
-S31AFE00A7D87D2950507D29FE707C8003787C0048787C8948387D59
-S31AFE00A7ED240378908B00007C0006AC4E8000207C8823787C63FF
-S31AFE00A8021B794D8200203803FFFF280000394D8100203D60FE97
-S31AFE00A81701396B37805400103A7D4B002E3D20FE0139293780C3
-S31AFE00A82C7D4A4A147D4903A64E8004203D20FF0061290200A005
-S31AFE00A8418900007C0006AC5484063E38000000600080007C0097
-S31AFE00A85646307C8003785404043EB08900007C0006AC4E80002D
-S31AFE00A86B203D20FF0061290240A08900007C0006AC5484063E19
-S31AFE00A88038000000600080007C0046307C8003785404043EB0F4
-S31AFE00A8958900007C0006AC4E8000203D20FF0061290220A089D4
-S31AFE00A8AA00007C0006AC5484063E38000000600080007C004671
-S31AFE00A8BF307C8003785404043EB08900007C0006AC4E800020EA
-S31AFE00A8D43D20FF0061290940800900007C0006AC540004DE55FA
-S31AFE00A8E90B68247C005B78900900007C0006AC4E800020386023
-S31AFE00A8FE00014E800020386000014E8000203D2000009069393C
-S31AFE00A913B44E8000209421FFF87C0802A69001000C3D200000B7
-S31AFE00A9283D600001814939B4906B95E8814A0000388B95E82C12
-S31AFE00A93D0A00003860000041820010386000027D4803A64E80B6
-S31AFE00A95200218001000C7C0803A6382100084E8000209421FF0E
-S31AFE00A967F87C0802A69001000C3D2000013D600000814B39B462
-S31AFE00A97C906995E8390995E89088000490A80008814A00002C3A
-S31AFE00A9910A00004082000C38600000480000147D04437838600D
-S31AFE00A9A600037D4803A64E8000218001000C7C0803A638210025
-S31AFE00A9BB084E8000209421FFF87C0802A69001000C3D200001BA
-S31AFE00A9D03D600000814B39B4906995E8390995E8908800048146
-S31AFE00A9E54A00002C0A00004082000C38600000480000147D0496
-S31AFE00A9FA4378386000047D4803A64E8000218001000C7C08037C
-S31AFE00AA0FA6382100084E8000209421FFF87C0802A69001000CC4
-S31AFE00AA243D2000013D600000814B39B4906995E8390995E890A0
-S31AFE00AA3988000490A80008814A00002C0A00004082000C3860D1
-S31AFE00AA4E0000480000147D044378386000057D4803A64E80007E
-S31AFE00AA63218001000C7C0803A6382100084E8000209421FFF804
-S31AFE00AA787C0802A69001000C3D2000013D600000814B39B490B8
-S31AFE00AA8D6995E8390995E89088000490A80008814A00002C0AAE
-S31AFE00AAA200004082000C38600000480000147D04437838600005
-S31AFE00AAB7077D4803A64E8000218001000C7C0803A63821000807
-S31AFE00AACC4E8000209421FFE87C0802A693E100149001001C3B4B
-S31AFE00AAE1E100087FE3FB784BFFFE312C0300004082000C386090
-S31AFE00AAF6000048000008A07F00068001001C7C0803A683E100A4
-S31AFE00AB0B14382100184E8000209421FFF87C0802A69001000C49
-S31AFE00AB204BFFB3C18001000C7C0803A6382100084E8000203C19
-S31AFE00AB3500FE00600001007C0903A64E8004209421FFF87C0858
-S31AFE00AB4A02A69001000C4BFFFFE5386000008001000C7C0803D3
-S31AFE00AB5FA6382100084E800020386000004E8000209421FFE8C6
-S31AFE00AB747C0802A693A1000C93C1001093E100149001001C7C47
-S31AFE00AB897F1B78386000003BA00001380000002C1FFFFE4182EA
-S31AFE00AB9E0040418100102C1FFFFD4182004C480000502C1FFF54
-S31AFE00ABB3FF408200483D200000812936B82C0900003BA9FFFF74
-S31AFE00ABC84181003C7D3D4B78408200343BA0FFFD4800002C3D7B
-S31AFE00ABDD200000392932003D6000009069001893EB36B8480049
-S31AFE00ABF200143BE00000480000083BFF0001380000012C00002B
-S31AFE00AC0700418200803D2000003BC93200813E00182C09000052
-S31AFE00AC1C418200188069000080090014388000047C0803A64E87
-S31AFE00AC318000213D200001392995F457E028347C004A143D2056
-S31AFE00AC4600002C030000901E001893E936B8813E0018418200FC
-S31AFE00AC5B1C8069000080090014388000057C0803A64E80002165
-S31AFE00AC70480000188069000080090014388000047C0803A64EAE
-S31AFE00AC858000217FA3EB788001001C7C0803A683A1000C83C152
-S31AFE00AC9A001083E10014382100184E8000203940000138000008
-S31AFE00ACAF002C03FFFE41820040418100102C03FFFD4182004C51
-S31AFE00ACC4480000502C03FFFF408200483D200000812936BC2C83
-S31AFE00ACD90900003949FFFF4181003C7D2A4B7840820034394002
-S31AFE00ACEEFFFD4800002C3D200000392932003D600000900900B6
-S31AFE00AD0314906B36BC4800001438600000480000083863000156
-S31AFE00AD18380000012C000000418200283D200001392995F45435
-S31AFE00AD2D6028343D6000007C004A14396B32003D200000900B0C
-S31AFE00AD420014906936BC7D4353784E8000204E8000204E8000C4
-S31AFE00AD57204E8000209421FFE87C0802A693E100149001001CD8
-S31AFE00AD6C3D200000392932008169001838000000900100088189
-S31AFE00AD812B0000800B00187C651B787C8623787D234B783881BE
-S31AFE00AD9600087C0803A64E800021800100087C7F1B782C00003D
-S31AFE00ADAB00418200103D200000806939B8480001997FE3FB78CE
-S31AFE00ADC08001001C7C0803A683E10014382100184E8000209445
-S31AFE00ADD521FFE87C0802A693A1000C93C1001093E10014900174
-S31AFE00ADEA001C380000407C0903A63D2000003D60FE0139293201
-S31AFE00ADFF00396BAB68394000007D69512E394A00044200FFF8E6
-S31AFE00AE143D2000013D60FE01392995F4396BAB683900000055FB
-S31AFE00AE290A283438080001390000087D0903A67D69512E394A11
-S31AFE00AE3E00044200FFF87C0803782C0800024081FFDC3FA0000E
-S31AFE00AE530038000013901D32003D6000003BBD3200396B3358C6
-S31AFE00AE68917D00043D200000392930003D60FE01913D00083925
-S31AFE00AE7D6BAB34917D00403D20FE013929AB443D60FE01913D0D
-S31AFE00AE920010396BAB14917D00483D20FE013929AB703D60FE6A
-S31AFE00AEA701913D0030396BACA83D40FE01917D0034394AAD505D
-S31AFE00AEBC3D20FE01915D00203929AD54913D001C3860FFFE4BE6
-S31AFE00AED1FFFCA13860FFFE4BFFFDD138000000901D0024901D69
-S31AFE00AEE60028901D004C901D0044387D003C4BFFFA193D20FE98
-S31AFE00AEFB013929953C913D008C8001001C7C0803A683A1000CB6
-S31AFE00AF1083C1001083E10014382100184E8000207C8423794120
-S31AFE00AF258200243884FFFF7C0320AE2C0000034082000C3860D1
-S31AFE00AF3A00014E8000202C0400004082FFE4386000004E8000D4
-S31AFE00AF4F209421FFF87C0802A69001000C7C631B793D20FE0185
-S31AFE00AF643809AF8841820008800300943D200000392932008108
-S31AFE00AF7929008C7C0303787D2803A64E8000218001000C7C08C2
-S31AFE00AF8E03A6382100084E8000209421FFF07C0802A693C1008E
-S31AFE00AFA30893E1000C900100143D200000800932007C7F1B78C2
-S31AFE00AFB82C000014396932007C9E23783860FFFF4082001C81C2
-S31AFE00AFCD2B00183880000680690000800900147C0803A64E80E9
-S31AFE00AFE200217C1F18004082001C7FE3FB787FC4F3784BFFFDDA
-S31AFE00AFF7697C601B797C030378408200287FE3FB787FC4F37801
-S31AFE00B00C4BFFADED7C601B787C09FE707D2302787C6348507CD8
-S31AFE00B02163FE707C031838800100147C0803A683C1000883E104
-S31AFE00B036000C382100104E800020280500037C691B7840810035
-S31AFE00B04B107C801B78700B0003418200302C05000038A5FFFFD0
-S31AFE00B0604D820020880400002C05000098090000388400013994
-S31AFE00B07529000138A5FFFF4082FFE84E8000202805000F7C6B03
-S31AFE00B08A1B78408100388004000038A5FFF0900B00008524008D
-S31AFE00B09F042805000F952B000484040004940B000485240004B8
-S31AFE00B0B4952B000438840004396B00044181FFD0280500034056
-S31AFE00B0C98100208004000038A5FFFC28050003900B00003884EA
-S31AFE00B0DE0004396B00044181FFE82C0500007D695B7838A5FF3E
-S31AFE00B0F3FF4D820020880400002C05000098090000388400013B
-S31AFE00B1083929000138A5FFFF4082FFE84E800020280500037CAD
-S31AFE00B11D691B784081000C70600003418200282C05000038A584
-S31AFE00B132FFFF4D8200202C050000988900003929000138A5FF86
-S31AFE00B147FF4082FFF04E8000205484063E5480402E7C002378DC
-S31AFE00B15C5409801E7C004B787C6B1B782805000F408100249075
-S31AFE00B1710B0000940B000438A5FFF0940B00042805000F940BCD
-S31AFE00B1860004396B00044181FFE4280500034081001838A5FF7A
-S31AFE00B19BFC28050003900B0000396B00044181FFF02C0500004A
-S31AFE00B1B07D695B784D8200207CA903A69889000039290001424A
-S31AFE00B1C500FFF84E8000209421FFA87C631B79394100087D4777
-S31AFE00B1DA537839000000408200143800003098010008394100FF
-S31AFE00B1EF09480000247C032B967D2029D67D2918507D6648AE0F
-S31AFE00B2047C030379996A0000394A00014082FFE47C0A3800410B
-S31AFE00B2198200287D0343787CE93B788C0AFFFF386300017C0A69
-S31AFE00B22E480098040000388400014082FFEC7C681B783800000A
-S31AFE00B24300980400007D034378382100584E8000209421FF9830
-S31AFE00B2587C0802A67D8000269241003092610034928100389287
-S31AFE00B26DA1003C92C1004092E10044930100489321004C9341F1
-S31AFE00B2820050936100549381005893A1005C93C1006093E100F7
-S31AFE00B297649001006C9181002C7C9923788BB900003AE10008E8
-S31AFE00B2AC2C1D00007EF2BB787C7B1B787CB82B783BC000003A07
-S31AFE00B2C1A000003B390001418204802C1D00254082043C8BB964
-S31AFE00B2D600003B3900012C1D002D3AC000003BE000004082009D
-S31AFE00B2EB108BB900003B3900013AC000012C1D00304082001437
-S31AFE00B3008BB900003B8000013B390001480000083B800000387C
-S31AFE00B3151DFFD0280000094181003C7FA3EB787F24CB787FE931
-S31AFE00B32AFB781D29000A3929FFD07D291A14886400003884009A
-S31AFE00B33F013803FFD0280000094081FFE47D3F4B787C992378E6
-S31AFE00B3547C7D1B782C1D002E4082003C8BB900003B39000138EE
-S31AFE00B3691DFFD0280000093B9C0001418100247F24CB7888641E
-S31AFE00B37E0000388400013803FFD0280000094081FFF07C7D1BFA
-S31AFE00B393787C9923782C1D006C3A8000004082000C8BB90000F8
-S31AFE00B3A83B390001381DFFA8280000203A790001418101F83D27
-S31AFE00B3BD60FE01396B38A05400103A7D4B002E3D20FE0139294A
-S31AFE00B3D238A07D4A4A147D4903A64E800420386000307F680352
-S31AFE00B3E7A63B8000013BE000084E800021386000787F6803A639
-S31AFE00B3FC4E800021897800005569063E38090001280000084193
-S31AFE00B41181001C801800085529103A396B00017C604A1499782D
-S31AFE00B426000048000030280900074181001C807800043800004B
-S31AFE00B43B083923000498180000913800044800001080780004BF
-S31AFE00B45038030004901800042C1D00648063000041820028413C
-S31AFE00B4658100102C1D00584182004C480000602C1D0070418269
-S31AFE00B47A00342C1D00784182002C4800004C2C03000040800052
-S31AFE00B48F0C3A80002D7C6300D03CC0FE0138C6386838810008A8
-S31AFE00B4A438A0000A480000203CC0FE0138C638744800000C3C10
-S31AFE00B4B9C0FE0138C638883881000838A000104BFFFD057C7517
-S31AFE00B4CE1B787E579378480000EC897800005569063E3809007A
-S31AFE00B4E301280000084181001C801800085529103A396B000134
-S31AFE00B4F87C604A149978000048000030280900074181001C80E2
-S31AFE00B50D78000438000008392300049818000091380004480044
-S31AFE00B522001080780004380300049018000482E300007EE3BB98
-S31AFE00B53778480003C97C751B7848000080897800005569063E20
-S31AFE00B54C38090001280000084181001C801800085529103A39F5
-S31AFE00B5616B00017D404A149978000048000030280900074181C7
-S31AFE00B576001C8158000438000008392A000498180000913800A3
-S31AFE00B58B044800001081580004380A000490180004886A000387
-S31AFE00B5A07F6803A63BDE00014E8000214800018C3860003F7FCE
-S31AFE00B5B56803A63BDE00014E8000217F55F8503134FFFF7D293E
-S31AFE00B5CA4910381AFFFF7C0048782F9C00007F4948387D3A03B6
-S31AFE00B5DF782C140000419E00243BA00030418200207E83A3788E
-S31AFE00B5F47F6803A63BDE00013A8000004E800021480000083B60
-S31AFE00B609A000202C1400002E1600003AD5FFFF7F8000264092E0
-S31AFE00B61E003C7F40D3782C0000003B5AFFFF4081002C7F5FD370
-S31AFE00B633787FA3EB787F6803A63BDE00014E8000217FE0FB7896
-S31AFE00B6482C0000003BFFFFFF4181FFE47FFAFB787F880120418B
-S31AFE00B65D8200147E83A3787F6803A63BDE00014E8000217EA06B
-S31AFE00B672AB782C0000007ED5B378408100547EBDAB787EFCBB4A
-S31AFE00B687788BFC00007F6803A67FE3FB783B9C00013BDE000154
-S31AFE00B69C4E8000212C1F000A408200143860000D7F6803A63B0B
-S31AFE00B6B1DE00014E8000217FA0EB782C0000003BBDFFFF41814C
-S31AFE00B6C6FFC47F97E3787FB5EB78419200687F40D3782C00002F
-S31AFE00B6DB003B5AFFFF408100587F5FD378386000207F6803A639
-S31AFE00B6F03BDE00014E8000217FE0FB782C0000003BFFFFFF41C1
-S31AFE00B70581FFE4480000307FA3EB787F6803A63BDE00013A796D
-S31AFE00B71A00014E8000212C1D000A408200143860000D7F68036E
-S31AFE00B72FA63BDE00014E8000218BB900007E799B782C1D0000BB
-S31AFE00B7444082FB887FC3F3788001006C8181002C7C0803A68230
-S31AFE00B759410030826100348281003882A1003C82C1004082E1CF
-S31AFE00B76E0044830100488321004C834100508361005483810072
-S31AFE00B7835883A1005C83C1006083E100647D808120382100680A
-S31AFE00B7984E8000203D200000816939BC38000000986B000039FA
-S31AFE00B7AD6B0001916939BC980B00004E8000209421FF707C08EF
-S31AFE00B7C202A693A1008493C1008893E1008C900100943D600070
-S31AFE00B7D70090A10010906B39BC38A100083BA100983800000299
-S31AFE00B7EC396000003C60FE0190A100789081000C90C100149055
-S31AFE00B801E100189101001C9121002091410024980100709961BC
-S31AFE00B816007193A100743863B79C38A100704BFFFA31800100D3
-S31AFE00B82B947C0803A683A1008483C1008883E1008C38210090F6
-S31AFE00B8404E8000209421FF707C0802A693A1008493C10088938A
-S31AFE00B855E1008C9001009490A100109081000C7C641B78906186
-S31AFE00B86A000838A100083BA1009838000001396000003C60FEFC
-S31AFE00B87F0190A1007890C1001490E100189101001C9121002098
-S31AFE00B89491410024980100709961007193A100743863BAF83804
-S31AFE00B8A9A100704BFFF9A9800100947C0803A683A1008483C15B
-S31AFE00B8BE008883E1008C382100904E8000209421FFF87C0802F0
-S31AFE00B8D3A69001000C7C601B787C8523783C60FE013863BAF826
-S31AFE00B8E87C0403784BFFF9698001000C7C0803A6382100084E37
-S31AFE00B8FD80002088030000392000004800000C8803000039296D
-S31AFE00B91200012C000000386300014082FFF07D234B784E800071
-S31AFE00B927207C691B78480000102C030000386000004D82002061
-S31AFE00B93C8869000088040000388400017C030000392900014195
-S31AFE00B95182FFE07C6018504E800020880400007C691B784800FE
-S31AFE00B96600109803000088040000386300012C0000003884000D
-S31AFE00B97B014082FFEC38000000980300007D234B784E800020E1
-S31AFE00B9907C6B1B78480000102C030000386000004D820020888E
-S31AFE00B9A56B0000396B00013803FFBF280000194181000C380336
-S31AFE00B9BA00205403063E89240000388400013809FFBF28000028
-S31AFE00B9CF194181000C380900205409063E7D204B787C03000097
-S31AFE00B9E44182FFB47C6018504E8000207CA02B797C691B787CEE
-S31AFE00B9F90903A640820014386000004E8000207C6018504E8015
-S31AFE00BA0E00208869000088040000388400017C030000392900E4
-S31AFE00BA23014082FFE42C030000418200084200FFE038600000B1
-S31AFE00BA384E8000207CA02B797C6B1B787C0903A640820018388D
-S31AFE00BA4D6000004E8000207C6018504E80002042400050886B9B
-S31AFE00BA620000396B00013803FFBF280000194181000C380300E3
-S31AFE00BA77205403063E89240000388400013809FFBF2800001951
-S31AFE00BA8C4181000C380900205409063E7D204B787C03000040B2
-S31AFE00BAA182FFB42C0300004082FFB4386000004E8000204800E5
-S31AFE00BAB6002C8923000088040000388400017C09000038630036
-S31AFE00BACB01418200148803FFFF8864FFFF7C6300504E800020FA
-S31AFE00BAE07CA02B782C00000038A5FFFF4082FFCC386000004E14
-S31AFE00BAF58000209421FFE87C0802A69381000893A1000C93C120
-S31AFE00BB0A001093E100149001001C3D200000800939087C7D1BA2
-S31AFE00BB1F782C000000408200743D200000392932008009003485
-S31AFE00BB343860FFFF7C0803A67D3E4B783BE000004E8000217C31
-S31AFE00BB497C1B78813E00347FE3FB787D2803A64E800021813E10
-S31AFE00BB5E00147FA4EB78806900008009000C7C0803A64E8000BB
-S31AFE00BB732137FF00014081FFD43D20000039293200800900341F
-S31AFE00BB887F83E3787C0803A64E800021480000483D2000003905
-S31AFE00BB9D293200816900142C0B00004182001C806B0000800BAA
-S31AFE00BBB2000C7FA4EB787C0803A64E8000214800001C8169007E
-S31AFE00BBC7187FA4EB78806B0000800B000C7C0803A64E80002129
-S31AFE00BBDC8001001C7C0803A68381000883A1000C83C100108373
-S31AFE00BBF1E10014382100184E8000209421FFF07C0802A693E1A3
-S31AFE00BC06000C900100143D20000039293200816900147C7F1B6F
-S31AFE00BC1B782C0B00004082000881690018806B0000800B00100F
-S31AFE00BC307C0803A64E800021987F0000800100147C0803A68383
-S31AFE00BC45E1000C382100104E8000209421FFE07C0802A69361EE
-S31AFE00BC5A000C9381001093A1001493C1001893E1001C900100CC
-S31AFE00BC6F243D200000800939087C7D1B782C000000408200886F
-S31AFE00BC843D20000039293200800900343860FFFF7C0803A67DB9
-S31AFE00BC993C4B783BE000004E8000217C7B1B78813C00347FE3AC
-S31AFE00BCAEFB787D2803A64E800021817C00147FA4EB78806B004B
-S31AFE00BCC300800B001C7C0803A64E8000217C7E1B794182001044
-S31AFE00BCD8881D00002C0000004082004C37FF00014081FFC03D80
-S31AFE00BCED20000039293200800900347F63DB787C0803A64E809D
-S31AFE00BD020021480000643D20000039293200816900142C0B0035
-S31AFE00BD170041820034806B0000800B001C7FA4EB784800003488
-S31AFE00BD2C817C00307FE3FB787D6803A63D200000380000019048
-S31AFE00BD410939084E80002148000020816900187FA4EB78806BD5
-S31AFE00BD560000800B001C7C0803A64E8000217C7E1B787FC3F34F
-S31AFE00BD6B78800100247C0803A68361000C8381001083A1001439
-S31AFE00BD8083C1001883E1001C382100204E8000209421FFE87C4F
-S31AFE00BD950802A69381000893A1000C93C1001093E1001490010C
-S31AFE00BDAA001C3D200000800939087C7D1B782C000000408200C3
-S31AFE00BDBF803D20000039293200800900343860FFFF7C0803A67A
-S31AFE00BDD47D3E4B783BE000004E8000217C7C1B78813E00347FD1
-S31AFE00BDE9E3FB787D2803A64E800021813E00142C0900004182E3
-S31AFE00BDFE001C8069000080090014388000077FA5EB787C0803BD
-S31AFE00BE13A64E80002137FF00014081FFC83D20000039293200D1
-S31AFE00BE28800900347F83E3787C0803A64E800021480000303D16
-S31AFE00BE3D20000039293200812900142C0900004182001C80697D
-S31AFE00BE52000080090014388000077FA5EB787C0803A64E8000F9
-S31AFE00BE67213D20000039293200812900182C0900004182001CDA
-S31AFE00BE7C80690000800900147FA5EB78388000077C0803A64E66
-S31AFE00BE918000218001001C7C0803A68381000883A1000C83C1AD
-S31AFE00BEA6001083E10014382100184E8000209421FFD07C080292
-S31AFE00BEBBA69301001093210014934100189361001C938100202C
-S31AFE00BED093A1002493C1002893E1002C900100347C7D1B787C18
-S31AFE00BEE5BE2B787FBFEB783B6000003F2000003F8000003B400E
-S31AFE00BEFA0000813939302C09000041820020896900002C0B00CB
-S31AFE00BF0F00418200143809000199610008901939304800006440
-S31AFE00BF247FC0FE707C1E005054000FFE7FE9EA78216900007D3B
-S31AFE00BF392B49147C0B48394182003C386000324BFFFE494800BD
-S31AFE00BF4E00083BDEFFCE2C1E000040810014386100084BFFFCE6
-S31AFE00BF63F17C7B1B794182FFE82C1B0000408200143860FFFFEC
-S31AFE00BF7848000180386100084BFFFC7D880100089B5F00007C7C
-S31AFE00BF8D0303785400063E2C00000D4182007C418100282C00F7
-S31AFE00BFA20008418200D4418100102C00000341820038480001A2
-S31AFE00BFB7142C00000A41820058480001082C00002B418200E8B9
-S31AFE00BFCC418100102C000024418200DC480000F02C00007F4177
-S31AFE00BFE1820098480000E47C1FE800408200183C60FE0138636E
-S31AFE00BFF639284BFFF84D3860FFFE480000F8987F00003BFF001C
-S31AFE00C00B013F000000480000DC892100083F0000002C09000A88
-S31AFE00C02040820010881836C02C00000D418200182C09000D4009
-S31AFE00C035820018881836C02C00000A4082000C9B410008480092
-S31AFE00C04A00A4801C39282C000000418200143860000D4BFFFA50
-S31AFE00C05F9D3860000A4BFFFA958801000838600001981836C0E0
-S31AFE00C074480000847C1FE8003F0000004182006C801C39282CCD
-S31AFE00C0890000004182001C386000084BFFFA65386000204BFF74
-S31AFE00C09EFA5D386000084BFFFA553BFFFFFF480000407C1FE8B6
-S31AFE00C0B300408200145463063E4BFFC31D386000004800003465
-S31AFE00C0C8801C39282C0000004182000C886100084BFFFA218889
-S31AFE00C0DD0100083F000000981F00003BFF0001880100089818CF
-S31AFE00C0F236C04BFFFE08800100347C0803A683010010832100D5
-S31AFE00C10714834100188361001C8381002083A1002483C1002857
-S31AFE00C11C83E1002C382100304E8000209421FFC07C0802A692D1
-S31AFE00C1314100089261000C9281001092A1001492C1001892E165
-S31AFE00C146001C9301002093210024934100289361002C93810008
-S31AFE00C15B3093A1003493C1003893E1003C900100447C9D23786E
-S31AFE00C1707C7C1B787D3DE0107D2949107D294BB87C1CE8507C8D
-S31AFE00C1850048787FA948387D3D03797CB62B78408101403E40AE
-S31AFE00C19AFE012C160000418200143872392C7C96E0504BFFF6E3
-S31AFE00C1AF99480000103872392C7F84E3784BFFF6897FBEEB78B0
-S31AFE00C1C47F9DE3783BE000003E80FE013EA0FE013E60FE013B5E
-S31AFE00C1D95EFFF03AFD00103F00FE013F60FE013F20FE017C1FE4
-S31AFE00C1EEF000408000147C9DF8AE387839384BFFF649480000C3
-S31AFE00C2030C387939404BFFF63D7FFCFE707C1CF8507C000E70AC
-S31AFE00C2187C0002147C00F8502C0000014082000C387B39444B41
-S31AFE00C22DFFF61957801F7E7C1F02147C001E70540018387C009B
-S31AFE00C242F8502C0000074082000C387B39444BFFF5F53BFF00FC
-S31AFE00C257012C1F000F4081FF907FBCEB787FDDF3783874394891
-S31AFE00C26C4BFFF5D97EBEAB783BE000007C1FE8004080002C7C3C
-S31AFE00C2819CF8AE3804FFE02000005E7C0001107C0003B87C0980
-S31AFE00C29600F87C8000387129002E7C044B784800000838800050
-S31AFE00C2AB20387E394C4BFFF5953BFF00012C1F000F4081FFBC3A
-S31AFE00C2C0387339504BFFF5817F5DD3797EFCBB784181FECC8090
-S31AFE00C2D50100447C0803A6824100088261000C8281001082A1EE
-S31AFE00C2EA001482C1001882E1001C83010020832100248341001D
-S31AFE00C2FF288361002C8381003083A1003483C1003883E1003C46
-S31AFE00C314382100404E8000209421FFF87C0802A69001000C38DC
-S31AFE00C329A000004BFFFDFD8001000C7C0803A6382100084E802E
-S31AFE00C33E00209421FF607C0802A69361008C9381009093A1002E
-S31AFE00C3539493C1009893E1009C900100A49081000C388100A88E
-S31AFE00C3683FA000003B800000380000013961000890810074833F
-S31AFE00C37D7D39309061000890A1001090C1001490E10018910107
-S31AFE00C392001C912100209141002498010070916100789B81001F
-S31AFE00C3A771388100704BFFF5213C60FE01386339544BFFF48DF5
-S31AFE00C3BC939D3930386100803880000838A000004BFFFAE98869
-S31AFE00C3D1610080937D393068600059212000007C090114686332
-S31AFE00C3E60079212300007C6919147C630378800100A47C080369
-S31AFE00C3FBA68361008C8381009083A1009483C1009883E1009CEB
-S31AFE00C410382100A04E8000209421FFE87C0802A69381000893B5
-S31AFE00C425A1000C93C1001093E100149001001C7C9C23787CBDCC
-S31AFE00C43A2B787C7F1B783BC00000480000C857C0103A7FFD01CF
-S31AFE00C44F2E881F00003BDE000148000098881F00002C00002210
-S31AFE00C4644082008457C0103A7D60EA14812BFFFC7C09F80040D9
-S31AFE00C47982000C3BFF000193EBFFFC893F0000692000227C0079
-S31AFE00C48E00D07D2900D055290FFE54000FFE7D2B0039418200BF
-S31AFE00C4A32C7FE3FB788D230001692000227C0000D07D2900D061
-S31AFE00C4B855290FFE54000FFE7D2B00394082FFE47C7F1B7888E3
-S31AFE00C4CD1F00002C0000004082002C3C60FE013863396C4BFFF8
-S31AFE00C4E2F365480000083BFF0001881F00002C000000418200C8
-S31AFE00C4F74C2C0000204082FF6038000000981F00003BFF000149
-S31AFE00C50C881F00002C0000004182002C2C000020408200187FAF
-S31AFE00C521E3FB788C0300012C0000204182FFF87C7F1B78881FE0
-S31AFE00C53600002C0000004082FF0C3C6000003C80000080BD005E
-S31AFE00C54B0093DC0000386337A838843818480000258001001CD8
-S31AFE00C5607C0803A68381000883A1000C83C1001083E100143855
-S31AFE00C5752100184E8000209421FFD87C0802A69301000893217E
-S31AFE00C58A000C93410010936100149381001893A1001C93C100D0
-S31AFE00C59F2093E100249001002C7C7F1B787CBC2B787C9A2378F4
-S31AFE00C5B47F83E3784BFFF3497FFDFB787C1DD0007C7B1B784168
-S31AFE00C5C98200C0809D00007F83E3787F65DB784BFFF4652C0394
-S31AFE00C5DE00004082009C807D00004BFFF3197C03D8004081007B
-S31AFE00C5F3847C1FD0003BC00001418200603F00FE013F20FE0185
-S31AFE00C6087C1DF80041820044809F00007F83E3787F65DB784B83
-S31AFE00C61DFFF4212C0300004082002C2C1E00004182001880BD71
-S31AFE00C6320000387839807F84E3784BFFF2093BC00000809F00C9
-S31AFE00C64700387939A84BFFF1F93BFF00107C1FD0004082FFB0EE
-S31AFE00C65C2C1E0000408200143C60FE01386339AC4BFFF1D9482E
-S31AFE00C6710000187FA3EB78480000143BBD00107C1DD000408284
-S31AFE00C686FF48386000008001002C7C0803A683010008832100B2
-S31AFE00C69B0C83410010836100148381001883A1001C83C10020EE
-S31AFE00C6B083E10024382100284E8000209421FFE87C0802A6931F
-S31AFE00C6C581000893A1000C93C1001093E100149001001C7C601E
-S31AFE00C6DA1B783C60FE017C9D23787C1F03787CBE2B783863399E
-S31AFE00C6EFB04BFFF1557C1FE800418200283F80FE0180BF000087
-S31AFE00C70480DF0008387C39B87FC4F3784BFFF1353BFF00107C2C
-S31AFE00C7191FE8004082FFE48001001C7C0803A68381000883A161
-S31AFE00C72E000C83C1001083E10014382100184E80002091230007
-S31AFE00C743149883000090A3000490C3000890E3000C91030010F9
-S31AFE00C7584E8000209421FFB07C0802A691C1000891E1000C92E0
-S31AFE00C76D01001092210014924100189261001C9281002092A17B
-S31AFE00C782002492C1002892E1002C9301003093210034934100E0
-S31AFE00C797389361003C9381004093A1004493C1004893E1004CF9
-S31AFE00C7AC900100547D344B787D1643783016FFFF7D20B1106AC1
-S31AFE00C7C1800001216000007C0B01147D2B00397C701B787C984D
-S31AFE00C7D623787CD133787CF53B787D5353783B4000013A400002
-S31AFE00C7EB0041820008925600007C12A8007E3F8B78408000507C
-S31AFE00C8007EA903A67FEBFB7839000000812B00102C0900004107
-S31AFE00C81582000891090000814B00042C0A000040820020800B73
-S31AFE00C82A00082C0000004182000C2C0000024082000C812B004A
-S31AFE00C83F0C91490000396B00184200FFC47CBD2B787C1D800044
-S31AFE00C854408002043DC0FE013DE0FE0157BE103A7C9EC02E88FE
-S31AFE00C8690400002C00002D4082014C396000007C0BA8008AE414
-S31AFE00C87E00017E3F8B78392000003B7D0001408001147F9EC21A
-S31AFE00C893143B200001881F00007C170000408200F0813F001060
-S31AFE00C8A82C09000041820020800900002C000000418200148053
-S31AFE00C8BD9F0014386E39C44BFFEF813B400000801F00042C0008
-S31AFE00C8D2000041820080813C0000880900023BC900032C000087
-S31AFE00C8E73D4182000C83DC00043BBD0001801F00082C000000FD
-S31AFE00C8FC418200102C0000014182003C48000040809F000C7FF2
-S31AFE00C911C3F37838A0000038C00000480001992C03000040823C
-S31AFE00C926002480BF00147FC4F378386F39E44BFFEF113B40004A
-S31AFE00C93B004800000C813F000C93C90000813F00103B7D0001DE
-S31AFE00C95048000034801F00082C000000418200102C000002413D
-S31AFE00C96582001C48000020817F000C812B000039290001912BDC
-S31AFE00C97A00004800000C813F000C9329000039600001480000E6
-S31AFE00C98F14392900017C09A8003BFF00184180FEFC2C0B0000A7
-S31AFE00C9A4408200A83C60FE0138633A0C7EE4BB784BFFEE9148EE
-S31AFE00C9B90000902C160000418200782C12000041820014386E9D
-S31AFE00C9CE39C47E649B784BFFEE713B4000002C14000041820037
-S31AFE00C9E3102C1400014182003C480000407C7EC02E7EC4B3780E
-S31AFE00C9F838A0000038C00000480000B52C030000408200247CC8
-S31AFE00CA0D9EC02E386F39E47E659B784BFFEE2D3B4000004800A2
-S31AFE00CA22000C7C1EC02E901600003B7D00013A40000148000045
-S31AFE00CA37183C60FE0138633A2C3B7D00014BFFEE013B400000C5
-S31AFE00CA4C7F7DDB787C1D80004180FE0C7F43D378800100547C40
-S31AFE00CA610803A681C1000881E1000C8201001082210014824146
-S31AFE00CA7600188261001C8281002082A1002482C1002882E10058
-S31AFE00CA8B2C8301003083210034834100388361003C838100407A
-S31AFE00CAA083A1004483C1004883E1004C382100504E80002088BA
-S31AFE00CAB503000038E000012C0000203900000A39800000408242
-S31AFE00CACA00108C0300012C0000204182FFF8880300002C0000F6
-S31AFE00CADF004182012C2C07000041820038880300002C00003039
-S31AFE00CAF44082002C892300013809FFBF280000194181000C3848
-S31AFE00CB090900205409063E2C0900784082000C390000103863EA
-S31AFE00CB1E00028943000038E00000392AFFD0380AFFBF2129009C
-S31AFE00CB3309392000007D29491420000005380000007C00011496
-S31AFE00CB487D2B0379386300013920000040820010380AFF9F28E1
-S31AFE00CB5D00000541810008392000012C09000041820068392AD3
-S31AFE00CB72FFD05520063E280000094181000C7D2B4B7848000070
-S31AFE00CB8730380AFF9F280000054181000C396AFFA94800001CDB
-S31AFE00CB9C380AFFBF200000057C0001107C0003B8392AFFC97CF0
-S31AFE00CBB10B48387C0B40004080001C880300007D2C41D62C00C6
-S31AFE00CBC600007D895A144082FF184800003C2C06000041820090
-S31AFE00CBDB2C88060000480000088C0600012C000000418200189D
-S31AFE00CBF07C0A00004082FFF0880600002C0000004082000C3835
-S31AFE00CC056000004E8000202C05000091840000418200089065C2
-S31AFE00CC1A0000386000014E800020880300002C000020408200E1
-S31AFE00CC2F108C0300012C0000204182FFF8886300006869007416
-S31AFE00CC44200900007D20491468600054214000007C0A01147D1F
-S31AFE00CC592B037941820010380000019004000048000030686932
-S31AFE00CC6E0046200900007D20491468600066214000007C0A012E
-S31AFE00CC83147C0A4B794082000C386000004E80002091640000F1
-S31AFE00CC98386000014E8000209421FFE07C0802A69361000C93A9
-S31AFE00CCAD81001093A1001493C1001893E1001C900100243D2087
-S31AFE00CCC2000139699680800BFFD47C9C23782C0000007CDB33D9
-S31AFE00CCD7784182000C3800000A4800012838000001B009968042
-S31AFE00CCEC88030000396B00022C0000002F8500004182001898AB
-S31AFE00CD010B00008C030001396B00012C0000004082FFF03800C4
-S31AFE00CD160000980B0000396B0001409E00103D20FE0138693A97
-S31AFE00CD2B604800001C2C0500014182000C3800000A480000CCD4
-S31AFE00CD403D20FE0138693A6C880300002C00000041820018980D
-S31AFE00CD550B00008C030001396B00012C0000004082FFF03D204B
-S31AFE00CD6A00013BA9966838000000980B00007FA3EB78388000B5
-S31AFE00CD7F0038A0000C4BFFE3953D600000812B36C83BFDFFEC8B
-S31AFE00CD9438000001B13F0018B01F001AA01C0004392900012C0D
-S31AFE00CDA90000003BC00000912B36C893DF00144082000C380030
-S31AFE00CDBE0045B01C00047F85E378387D0018388002057FA6EB4C
-S31AFE00CDD378480033A92C0300004180002838000001901DFFECC2
-S31AFE00CDE83920FFFF93DF0004913F001093DF000C93DF00083855
-S31AFE00CDFD6000004800001038000009901B00003860FFFF800162
-S31AFE00CE1200247C0803A68361000C8381001083A1001483C10036
-S31AFE00CE271883E1001C382100204E8000203D200001380000005D
-S31AFE00CE3C90099654386000004E8000209421FFC87C0802A6929A
-S31AFE00CE51C1001092E10014930100189321001C9341002093610C
-S31AFE00CE6600249381002893A1002C93C1003093E1003490010036
-S31AFE00CE7B3C7C9923783B6000007C1BC8003D2000013BC9968040
-S31AFE00CE907C7A1B787CBC2B78408001783BFEFFD43B0100083A62
-S31AFE00CEA5E000043AC00009813F000C2C0900004081005C7C1BD8
-S31AFE00CEBAC8507F890000809F02347F43D3784FFEE3827FA0000C
-S31AFE00CECF2657BD07FE7FBD00D07C00E8787D3DE8387FBD037892
-S31AFE00CEE47FA5EB784BFFE159801F0234813F000C7C00EA147D92
-S31AFE00CEF93D4850901F0234913F000C7F7BEA147F5AEA14480073
-S31AFE00CF0E00FC801F0010280001FF408100F838000001900100B4
-S31AFE00CF23083920000091380004387F002C3880020538BF00200E
-S31AFE00CF3838DF00147F07C378480033697C631B794080002C8130
-S31AFE00CF4D3F0004392900012C09000F913F000441810010801F9C
-S31AFE00CF6200082C00000040820044380000084800008CA81E00A2
-S31AFE00CF77002C00000340820064813F0008A97E000239290001F8
-S31AFE00CF8C7C0B48004082001C3863FFFC381E0004907F000C9044
-S31AFE00CFA11F0234917F0008907F0010A01F000AB2FE0000B01EA4
-S31AFE00CFB60002387F002C3880000438BF002038DF001448003106
-S31AFE00CFCBB52C0300004080003892DC00003860FFFF48000038ED
-S31AFE00CFE02C00000540820014A81E00023860FFFF901C000048DF
-S31AFE00CFF50000203800000B901C00003860FFFF480000107C1B8F
-S31AFE00D00AC8004180FEA07F63DB788001003C7C0803A682C10084
-S31AFE00D01F1082E10014830100188321001C834100208361002429
-S31AFE00D0348381002883A1002C83C1003083E10034382100384E7C
-S31AFE00D0498000203803FFFF2800000B3D20FE0138693A744D8149
-S31AFE00D05E00203D60FE01396B3B905400103A7D4B002E3D20FE9F
-S31AFE00D0730139293B907D4A4A147D4903A64E8004203C60FE0155
-S31AFE00D08838633A844E8000203C60FE0138633A944E8000203C1A
-S31AFE00D09D60FE0138633AA84E8000203C60FE0138633ACC4E80A6
-S31AFE00D0B200203C60FE0138633AE44E8000203C60FE0138633A93
-S31AFE00D0C7F84E8000203C60FE0138633B0C4E8000203C60FE0164
-S31AFE00D0DC38633B1C4E8000203C60FE0138633B304E8000203C90
-S31AFE00D0F160FE0138633B4C4E8000203C60FE0138633B604E8018
-S31AFE00D10600203C60FE0138633B744E8000209421FFE87C0802FB
-S31AFE00D11BA693A1000C93C1001093E100149001001C3D2000001F
-S31AFE00D130800936D07C9F23782C0000004082007C480043113D5E
-S31AFE00D1452000013869988C800300042C00000540820018A003B6
-S31AFE00D15A00162C00000040820050480043E5480000482C00003C
-S31AFE00D16F0040820014480008D93800000A981F00004800006007
-S31AFE00D1843FA00001389D9ED038A000804800444D2C0300003BD4
-S31AFE00D199BD9ED03D2000003D60000093A939D8906B36D0408248
-S31AFE00D1AE000C38600000480000303D400000816A39D83D000096
-S31AFE00D1C300880B0000396B0001981F0000812836D0916A39D8A9
-S31AFE00D1D83929FFFF912836D0386000018001001C7C0803A68339
-S31AFE00D1EDA1000C83C1001083E10014382100184E80002094219C
-S31AFE00D202FFE07C0802A693A1001493C1001893E1001C90010033
-S31AFE00D217243D2000003BA932007C7E1B783BE0006448000028EB
-S31AFE00D22C37FFFFFF40820010480000513BE000644800001481EE
-S31AFE00D2413D0048386000647D2803A64E8000217FC3F3783881B0
-S31AFE00D25600084BFFFEBD2C0300004182FFCC8861000880010083
-S31AFE00D26B247C0803A683A1001483C1001883E1001C38210020CC
-S31AFE00D2804E8000209421FFE87C0802A693A1000C93C1001093A8
-S31AFE00D295E100149001001C3D2000013BA99F504800003080BEF7
-S31AFE00D2AA36D47FE3FB787FA4EB784800443D7C631B7940810009
-S31AFE00D2BF14801E36D47FBD1A147C030050901E36D4480041819F
-S31AFE00D2D43FC00000801E36D42C000000418200303D2000013BE2
-S31AFE00D2E9E9988C801F00042C0000054082000C7FE3FB78480060
-S31AFE00D2FE424D801F00042C0000004082FFA0480007413D20006B
-S31AFE00D313003BC93200801E00443D2000012C00000039299F500E
-S31AFE00D3283D6000003D4000003BE00000912B39DC93EA36D4411E
-S31AFE00D33D820010386000004BFFDC0D93FE00448001001C7C0884
-S31AFE00D35203A683A1000C83C1001083E10014382100184E8000DE
-S31AFE00D367209421FFF07C0802A693E1000C900100143D600000FB
-S31AFE00D37C812B39DC2C0400249889000039290001912B39DC40EE
-S31AFE00D391820010380000013D200000900939C03FE00000801F0B
-S31AFE00D3A639C0688B0023212B00007D6959143140FFFF7D2A01A9
-S31AFE00D3BB107D2058394182001C3D400000392000013D600000C8
-S31AFE00D3D038000000912A39C4900B39C83D600000812B36D4392C
-S31AFE00D3E52900012C090100912B36D44182002C3D200000800934
-S31AFE00D3FA39C42C000000418200283D600000812B39C83929005A
-S31AFE00D40F012C090003912B39C8408200104BFFFE693800000053
-S31AFE00D424901F39C0800100147C0803A683E1000C382100104E5E
-S31AFE00D4398000209421FFE87C0802A693A1000C93C1001093E15A
-S31AFE00D44E00149001001C4800055D7C7D1B783C60FE013C80FE79
-S31AFE00D4630138A000EC38843C8838633C804BFFE3D57FA3EB788D
-S31AFE00D478480005A58001001C7C0803A683A1000C83C1001083D8
-S31AFE00D48DE10014382100184E8000209421FFE87C0802A693A136
-S31AFE00D4A2000C93C1001093E100149001001C480005017C7D1B6A
-S31AFE00D4B7783C60FE013C80FE0138A000FE38843C9838633C80D1
-S31AFE00D4CC4BFFE3797FA3EB78480005498001001C7C0803A68339
-S31AFE00D4E1A1000C83C1001083E10014382100184E8000209421A5
-S31AFE00D4F6FFE87C0802A69381000893A1000C93C1001093E100D6
-S31AFE00D50B149001001C7C7D1B787C9E23784BFFFD6D3D200000F4
-S31AFE00D520800936CC3D6000001FE0000A3B8B32004800001481EC
-S31AFE00D5353C0048386000647D2803A64E8000217FA3EB787FC458
-S31AFE00D54AF3784BFFFBC97C631B79408200102C1F00003BFFFF86
-S31AFE00D55FFF4082FFD48001001C7C0803A68381000883A1000C19
-S31AFE00D57483C1001083E10014382100184E8000209421FF787CCB
-S31AFE00D5890802A693C1008093E100849001008C7C8023782C002D
-S31AFE00D59E000590A1001090C1001490E100189101001C912100E0
-S31AFE00D5B320914100249081000C3BC000004182002C2800000515
-S31AFE00D5C8418100102C00000441820194480003482C00000641EA
-S31AFE00D5DD8203082C0000074182030C480003343FE00000801F66
-S31AFE00D5F236D83D6000002C00000039200001912B36DC4082005F
-S31AFE00D60714480011C1907F36D82C03000041820308811F36D814
-S31AFE00D61C3808FFFF28000039418102F83D60FE01396B3CA85422
-S31AFE00D63100103A7D4B002E3D20FE0139293CA87D4A4A147D4913
-S31AFE00D64603A64E8004203D20FF0061290014816900007C0006CA
-S31AFE00D65BAC3948FFFF3C0080007C0054307D6B03789169000072
-S31AFE00D6707C0006AC480002A83D20FF0061290200A00900007C74
-S31AFE00D6850006AC60000008B00900007C0006AC480002883D205C
-S31AFE00D69AFF0061290200A00900007C0006AC60000004B00900F8
-S31AFE00D6AF007C0006AC480002683D20FF0061290240A0090000B1
-S31AFE00D6C47C0006AC60000004B00900007C0006AC480002483D05
-S31AFE00D6D920FF0061290220A00900007C0006AC60000008B00975
-S31AFE00D6EE00007C0006AC480002283D20FF0061290220A00900D2
-S31AFE00D703007C0006AC60000004B00900007C0006AC4800020842
-S31AFE00D7183D20FF0061290940800900007C0006AC6000008090A2
-S31AFE00D72D0900007C0006AC480001E83D20FF006129094881695A
-S31AFE00D74200007C0006AC3948FFE53C0080007C0054307D6B0394
-S31AFE00D75778916900007C0006AC480001BC3D60000083CB36DC17
-S31AFE00D76C38000000900B36DC3D200000814936D82C0A00004113
-S31AFE00D78182019C7D4853783808FFFF280000394181018C3D6055
-S31AFE00D796FE01396B3D905400103A7D4B002E3D20FE0139293D7B
-S31AFE00D7AB907D4A4A147D4903A64E8004203D20FF006129001455
-S31AFE00D7C0816900007C0006AC3948FFFF3C0080007C0054307D80
-S31AFE00D7D56B0078916900007C0006AC4800013C3D20FF006129C5
-S31AFE00D7EA0200A00900007C0006AC7000FFF75400043EB0090098
-S31AFE00D7FF007C0006AC480001183D20FF0061290200A0090000F1
-S31AFE00D8147C0006AC7000FFFB5400043EB00900007C0006AC489E
-S31AFE00D8290000F43D20FF0061290240A00900007C0006AC700083
-S31AFE00D83EFFFB5400043EB00900007C0006AC480000D03D20FFE6
-S31AFE00D8530061290220A00900007C0006AC7000FFF75400043E3D
-S31AFE00D868B00900007C0006AC480000AC3D20FF0061290220A024
-S31AFE00D87D0900007C0006AC7000FFFB5400043EB00900007C0026
-S31AFE00D89206AC480000883D20FF0061290940800900007C0006C1
-S31AFE00D8A7AC5400066E900900007C0006AC480000683D20FF0021
-S31AFE00D8BC61290948816900007C0006AC3948FFE53C0080007CC3
-S31AFE00D8D10054307D6B0078916900007C0006AC4800003C3D2051
-S31AFE00D8E6000083C936D848000030396100083801009039200093
-S31AFE00D8FB039BC100719921007090010074916100783D2000004E
-S31AFE00D910800B000883C936CC900936CC7FC3F3788001008C7C4C
-S31AFE00D9250803A683C1008083E10084382100884E800020942108
-S31AFE00D93AFFE07C0802A693A1001493C1001893E1001C900100F4
-S31AFE00D94F247C7D1B787C9F23787CA32B784BFFCCE93800000060
-S31AFE00D964901F00007FA3EB78388100084BFFF7A52C030000415F
-S31AFE00D979820018880100082C0000034082000C38000001901F85
-S31AFE00D98E000038600001800100247C0803A683A1001483C10099
-S31AFE00D9A31883E1001C382100204E8000209421FFE87C0802A6A4
-S31AFE00D9B89381000893A1000C93C1001093E100149001001C3F22
-S31AFE00D9CDA000003BBD3200813D00343860FFFF7D2803A64E80D3
-S31AFE00D9E20021801D00347C7C1B78386000007C0803A64E80001C
-S31AFE00D9F7217F83E3788001001C7C0803A68381000883A1000C93
-S31AFE00DA0C83C1001083E10014382100184E8000209421FFF87CAE
-S31AFE00DA210802A69001000C3D20000039293200800900347C086D
-S31AFE00DA3603A64E8000218001000C7C0803A6382100084E800056
-S31AFE00DA4B209421FFE87C0802A693A1000C93C1001093E10014AE
-S31AFE00DA609001001C3FA000003BBD3200817D00343D20000080E8
-S31AFE00DA756939D07D6803A63D20000038000000900939084E805B
-S31AFE00DA8A0021801D00303D200000806939D47C0803A64E800047
-S31AFE00DA9F213D20000038000001900939288001001C7C0803A6F3
-S31AFE00DAB483A1000C83C1001083E10014382100184E800020946A
-S31AFE00DAC921FFE87C0802A693A1000C93C1001093E10014900153
-S31AFE00DADE001C3FA000003BBD3200811D00343860FFFF7D08031A
-S31AFE00DAF3A63D400000392000013D60000038000000912A3908CC
-S31AFE00DB08900B39284E8000213D200000906939D0813D00343890
-S31AFE00DB1D6000017D2803A64E800021813D00303860FFFF7D2828
-S31AFE00DB3203A64E8000213D200000801D0030906939D43860007A
-S31AFE00DB47017C0803A64E8000218001001C7C0803A683A1000CAE
-S31AFE00DB5C83C1001083E10014382100184E8000209421FFE87C6D
-S31AFE00DB710802A69381000893A1000C93C1001093E10014900112
-S31AFE00DB86001C3FE00000801F36E02C000000408200A03FA00029
-S31AFE00DB9B003BBD3200813D00343860FFFF7D2803A64E80002182
-S31AFE00DBB0813D00347C7C1B78386000017D2803A64E8000218188
-S31AFE00DBC55D00143D20FE013929D43C912A00043D60FE01396B09
-S31AFE00DBDAD4983D20FE01916A00083929D368912A000C3D60FE68
-S31AFE00DBEF01396BD2003D20FE01916A00103929D584912A0014B5
-S31AFE00DC043D60FE01396BD9383D20FE01916A00183929D4F4918C
-S31AFE00DC192A001C801D00347F83E3787C0803A64E80002138002A
-S31AFE00DC2E0001901F36E03D2000003FA00001A089391A387D9811
-S31AFE00DC438C480038313BBD988C801D00043D200000900939CCD3
-S31AFE00DC588001001C7C0803A68381000883A1000C83C1001083D6
-S31AFE00DC6DE10014382100184E8000209421FFF07C0802A693E106
-S31AFE00DC82000C90010014480037C93D2000013BE9988C3D20008D
-S31AFE00DC9700817F0004800939CC7C005800418200602C0B0004B0
-S31AFE00DCAC408200484BFFFE193C6000013D20000139299F503C6C
-S31AFE00DCC180000038C39ED03CA00000396000013940000D3D0028
-S31AFE00DCD600003CE000003800000090C439D8916536D099439E06
-S31AFE00DCEBD0912839DC900736D4801F00042C0000004082000848
-S31AFE00DD004BFFFE6D3D200001800998903D600000900B39CC8089
-S31AFE00DD150100147C0803A683E1000C382100104E800020942137
-S31AFE00DD2AFFE87C0802A693A1000C93C1001093E1001490010010
-S31AFE00DD3F1C3D20000080E9391C2C070000408200283D0000003A
-S31AFE00DD54392000013D6000003D40000038002328912839149029
-S31AFE00DD69EB3A00900A39184800007C3C60FE013C8000003863DB
-S31AFE00DD7E3BFC38843A0038A000014BFF50793C60FE013C80001C
-S31AFE00DD930038633BD43884391838A000024BFF50613C60FE0150
-S31AFE00DDA83C80000038633C2C3884391438A000014BFF50493CA2
-S31AFE00DDBD60FE013C80000038633C483884370838A000054BFFF1
-S31AFE00DDD250313C60FE013C80000138633C7038841AB038A000BA
-S31AFE00DDE7054BFF50193D20000038000000900939344800034D38
-S31AFE00DDFC4800287D3D6000003D200000392938F83BEB38E87CD3
-S31AFE00DE111F48004182003C7D3D4B783BC00001813F00047FE3F3
-S31AFE00DE26FB787D2803A64E8000217C631B794182000C93DF007F
-S31AFE00DE3B0C48000008907F000C3BFF00107C1FE8004082FFD4F5
-S31AFE00DE503D20000080093A042C000000408200143C60FE0138C0
-S31AFE00DE65633E784BFFD9DD480000903D200000800939142C0054
-S31AFE00DE7A0000418200283C60000138631A9C48001E8D2C030094
-S31AFE00DE8F00418200143C60FE0138633E984BFFD9A94800001073
-S31AFE00DEA43D20000038000001900939343D200000800939342C4A
-S31AFE00DEB9000000418200403C60000038633708480001B97C64F5
-S31AFE00DECE1B783C60FE0138633EC44BFFD96D3C60000138631A8E
-S31AFE00DEE3B04800019D7C641B783C60FE0138633ECC4BFFD95169
-S31AFE00DEF84BFFFC758001001C7C0803A683A1000C83C100108385
-S31AFE00DF0DE10014382100184E8000209421FFF093E1000C38004B
-S31AFE00DF2200047C0903A67C9F2378388000003980001889630089
-S31AFE00DF370038E000012C0B000038A0000038C0000A386300010B
-S31AFE00DF4C4182011069600030212000007C0901147CE900394135
-S31AFE00DF61820030892300003809FFBF280000194181000C3809FA
-S31AFE00DF7600205409063E2C090078408200108D63000138C00069
-S31AFE00DF8B1038630001392BFFD0380BFFBF7D2A4B787C08037834
-S31AFE00DFA05529063E5400063E21290009392000007D294914203F
-S31AFE00DFB5000005380000007C0001147D27037938E000003920F4
-S31AFE00DFCA000040820010380BFF9F28000005418100083920003B
-S31AFE00DFDF012C090000418200685540063E280000094181000CF0
-S31AFE00DFF47D49537848000030380BFF9F280000054181000C39F6
-S31AFE00E0092BFFA94800001C5500063E200000057C0001107C0000
-S31AFE00E01E03B8392BFFC97C0948387C093000408000208963007C
-S31AFE00E033007C0531D62C0B00007CA04A14386300014082FF0C32
-S31AFE00E048480000142C0B002E4182000C386000004800001C7CB7
-S31AFE00E05DA060307C840378398CFFF84200FECC909F0000386070
-S31AFE00E072000183E1000C382100104E8000209421FFE87C0802AB
-S31AFE00E087A693A1000C93C1001093E100149001001C8903000372
-S31AFE00E09C3FA0000188A3000088C3000188E300023C80FE0138B4
-S31AFE00E0B1843EE8387DA0504BFFD705387DA0508001001C7C081B
-S31AFE00E0C603A683A1000C83C1001083E10014382100184E80005D
-S31AFE00E0DB20812300007C09180041820020812300049089000027
-S31AFE00E0F0800300049064000090040004908300044E800020906F
-S31AFE00E1058900049089000091240000912400044E8000207C6B18
-S31AFE00E11A1B78806B00007C0358004182001880030000900B009E
-S31AFE00E12F0081230000916900044E800020386000004E800020C1
-S31AFE00E1449421FFE87C0802A693A1000C93C1001093E10014903E
-S31AFE00E15901001C3D0000003CE00000392839E8396739E0912843
-S31AFE00E16E39E8916739E03D400001912900043BCAA070916B0019
-S31AFE00E183043FA000003BE000107FC4F378387D39E04BFFFF4967
-S31AFE00E19837FFFFFF3BDE06104082FFEC8001001C7C0803A68311
-S31AFE00E1ADA1000C83C1001083E10014382100184E8000209421CC
-S31AFE00E1C2FFF87C0802A69001000C80040000A1240004900300A4
-S31AFE00E1D710B123001480040000A10400043D200000396939F8DA
-S31AFE00E1EC900939F83D400000B10B0004906A3A044800001580FE
-S31AFE00E20101000C7C0803A6382100084E8000209421FFF87C084B
-S31AFE00E21602A69001000C81230000388300108009000038A000DA
-S31AFE00E22B007C0803A64E8000218001000C7C0803A638210008A3
-S31AFE00E2404E8000209421FF587C0802A67D800026934100909385
-S31AFE00E2556100949381009893A1009C93C100A093E100A49001A2
-S31AFE00E26A00AC9181008C3D2000003929320083A9004C3D60004B
-S31AFE00E27F002C1D00007C7B1B787C9A23787CBC2B7883EB3A047B
-S31AFE00E2943BC00005418200547FBFEB78815F0000801F000C81AD
-S31AFE00E2A96A00243D2000002C000000392936E4916A0028912AEB
-S31AFE00E2BE00244082002C800A00003C800000388439F87FE3FBA5
-S31AFE00E2D37838A000007C0803A64E800021801F000C60000001BA
-S31AFE00E2E8901F000C2E1D00004800003C813F00007FE3FB78807E
-S31AFE00E2FD09001C7C0803A64E8000213D2000003929320080094D
-S31AFE00E31200483C60000360630D407C0803A64E80002137DEFFCB
-S31AFE00E327FF408100E4813F00007FE3FB788009000C7C0803A6E2
-S31AFE00E33C4E8000212C0300004182FFB0813F00003D600000815A
-S31AFE00E35149001038A0000238EB39F09361000893410010938140
-S31AFE00E36600147FE3FB783881000838DC000E7D4803A63800002C
-S31AFE00E37B0E392000009001000C912B39F04E8000213D20000054
-S31AFE00E39080093A003FC000002C000000418200384BFFF6117CBE
-S31AFE00E3A57D1B783C60FE0138633EF44BFFD4957F63DB78388047
-S31AFE00E3BA000E4BFFDF617F43D3787F84E3784BFFDF557FA3EBBC
-S31AFE00E3CF784BFFF64D801E39F02C000000408200307FFDFB785C
-S31AFE00E3E47FDFF378813D00007FA3EB788009001C7C0803A64EF4
-S31AFE00E3F9800021801F39F02C0000004182FFE47FBFEB7841925C
-S31AFE00E40E0018813F000038000000816900289009002891690018
-S31AFE00E42324800100AC8181008C7C0803A6834100908361009408
-S31AFE00E4388381009883A1009C83C100A083E100A47D80812038AD
-S31AFE00E44D2100A84E8000209421FFF87C0802A69001000C3D202D
-S31AFE00E4620000380939F07C0400004082001038000001900939DA
-S31AFE00E477F0480000188123000081690028800B00087C0803A6C6
-S31AFE00E48C4E8000218001000C7C0803A6382100084E80002094EB
-S31AFE00E4A121FFE07C0802A69361000C9381001093A1001493C176
-S31AFE00E4B6001893E1001C900100243D20000039293200838900F3
-S31AFE00E4CB4C3D6000002C1C00007C7D1B787C9B237883CB3A043D
-S31AFE00E4E0418200547F9EE378815E0000801E000C816A00243DBF
-S31AFE00E4F52000002C000000392936E4916A0028912A0024408282
-S31AFE00E50A002C800A00003C800000388439F87FC3F37838A00014
-S31AFE00E51F007C0803A64E800021801E000C60000001901E000C02
-S31AFE00E534813E00007FC3F3788009001C7C0803A64E8000213C65
-S31AFE00E549600000386339E84BFFFBC97C7F1B7941820054393F71
-S31AFE00E55E000CA009000C817F000C8149000481090008B01D00AA
-S31AFE00E5730C917D0000915D0004911D000880BF00087F63DB7851
-S31AFE00E58838A5FFF2389F001A4BFFCAB13C600000386339E07F27
-S31AFE00E59DE4FB784BFFFB3D807F000848000008386000002C1C55
-S31AFE00E5B2000041820018813E00003800000081690028900900D3
-S31AFE00E5C72891690024800100247C0803A68361000C838100101F
-S31AFE00E5DC83A1001483C1001883E1001C382100204E8000209417
-S31AFE00E5F121FFE87C0802A693A1000C93C1001093E10014900120
-S31AFE00E606001C7CA02B797C0903A64081003C7C9F23787FC902F4
-S31AFE00E61BA63FA00000807F000080BF0004809D39F44BFFCA15AC
-S31AFE00E630801D39F4813F000437DEFFFF7C004A143BFF00089084
-S31AFE00E6451D39F44082FFD88001001C7C0803A683A1000C83C19B
-S31AFE00E65A001083E10014382100184E8000209421FF607C080226
-S31AFE00E66FA69361008C9381009093A1009493C1009893E1009C04
-S31AFE00E684900100A47C7E1B783C6000007C9B2378386339E04B6E
-S31AFE00E699FFFA817C7C1B787F89FE707D20E2787C004850817EE3
-S31AFE00E6AE00007C00FE70393C000C7D3F0038800B001493E100E1
-S31AFE00E6C3089361000C7FC3F3783881000838A000017C0803A6C2
-S31AFE00E6D84E8000213D20000080093A002C000000418200384BA8
-S31AFE00E6EDFFF2C57C7D1B783C60FE0138633F044BFFD1497FE393
-S31AFE00E702FB783880000E4BFFDC15387F000E389BFFF24BFFDCDB
-S31AFE00E717097FA3EB784BFFF301813E0000800900282C00000081
-S31AFE00E72C4182005C3C60000038633708389F001E38A000044B23
-S31AFE00E741FFD3752C03000041820040815E00007FC3F378812A0F
-S31AFE00E75600287F64DB78800900043D60FE017C0803A683AA00C9
-S31AFE00E76B14396BE5F03D20000093E939F4916A00144E80002104
-S31AFE00E780813E000093A900142C1C0000418200183C600000931F
-S31AFE00E7957C0008386339E87F84E3784BFFF93D800100A47C08A4
-S31AFE00E7AA03A68361008C8381009083A1009483C1009883E100B1
-S31AFE00E7BF9C382100A04E8000209421FFF87C0802A69001000C49
-S31AFE00E7D43D20000080693A0481630000800B00207C0803A64E9E
-S31AFE00E7E98000218001000C7C0803A6382100084E8000209421B8
-S31AFE00E7FEFFF87C0802A69001000C7C641B783C60FE0138633F5A
-S31AFE00E813144BFFD0318001000C7C0803A6382100084E80002084
-S31AFE00E8289421FFF07C0802A693E1000C900100143D2000013B49
-S31AFE00E83DE91F1C801F001C2C0000004082002C90691F1C909F66
-S31AFE00E85200044800049D7C631B794082001C801F00083920006F
-S31AFE00E867017C0000D0913F001C901F0010386000008001001473
-S31AFE00E87C7C0803A683E1000C382100104E8000203D20000139F8
-S31AFE00E891291F1C8009001C7C6B1B782C0000004082000C386059
-S31AFE00E8A600074E800020800900147C0B004041800014800900A2
-S31AFE00E8BB18386000007C0B00404D800020386000014E80002059
-S31AFE00E8D03D20000139691F1C800B001C2C0000004182001C81C1
-S31AFE00E8E52B00143860000091240000800B0018900500004E8088
-S31AFE00E8FA0020386000074E8000203D20000139691F1C800B0092
-S31AFE00E90F1C7C6A1B782C0000004182001C812B00083860000003
-S31AFE00E924912A0000800B000C900400004E800020386000074E19
-S31AFE00E9398000209421FFD87C0802A69321000C934100109361D5
-S31AFE00E94E00149381001893A1001C93C1002093E1002490010083
-S31AFE00E9632C3D20000180091F387C7F1B782C0000007C9E2378C2
-S31AFE00E9787CBA2B783B8000004082000C38600007480000F83D08
-S31AFE00E98D20000183A91F1C3C80FE013CA0FE013884EF1C38A5AF
-S31AFE00E9A2F0447CA428507FA3EB784BFFC6957CBFF214380000ED
-S31AFE00E9B7807C0903A639200000612010003D600E007C0004ACD8
-S31AFE00E9CC7D398BA67D788BA67C198BA67D788BA6392900104285
-S31AFE00E9E100FFE03C0004004C00012C7C108BA64C00012C3D20F2
-S31AFE00E9F6000139291F1C800900107CBE2B783C60FE017FFF00DB
-S31AFE00EA0B383F20FE017D3B4B7838633F507FE4FB784BFFCE29A0
-S31AFE00EA204800001C801B000838793F685400F87E7C0002147FA3
-S31AFE00EA35FF02144BFFCE0D7C1FF040408000207FE3FB787FA8E7
-S31AFE00EA4A03A64E800021480003657C7C1B794182FFCC93FA00C4
-S31AFE00EA5F003C0002004C00012C7C108BA64C00012C3C60FE0116
-S31AFE00EA7438633F6C4BFFCDCD7F83E3788001002C7C0803A683A5
-S31AFE00EA8921000C83410010836100148381001883A1001C83C1DB
-S31AFE00EA9E002083E10024382100284E8000209421FFD07C08023E
-S31AFE00EAB3A692E1000C9301001093210014934100189361001CBD
-S31AFE00EAC89381002093A1002493C1002893E1002C900100343D8B
-S31AFE00EADD600001392B1F1C8009001C7CBE2B782C0000007CD81E
-S31AFE00EAF233787C7C1B787C9D23783B4000004082000C38600040
-S31AFE00EB07074800011C836B1F1C3C80FE013CA0FE013884F044DA
-S31AFE00EB1C38A5F1887CA428507F63DB784BFFC5197CBDF214381E
-S31AFE00EB310000807C0903A639200000612010003D600E007C000C
-S31AFE00EB4604AC7D398BA67D788BA67C198BA67D788BA6392900AB
-S31AFE00EB5B104200FFE03C0004004C00012C7C108BA64C00012C81
-S31AFE00EB703C60FE0138633F707FA4EB787F86E3784BFFCCC53DA9
-S31AFE00EB852000013EE0FE013B291F1C4800002038773F684BFF92
-S31AFE00EB9ACCAD57E0F87E7C0002147FBD02147FDFF0507F9C029D
-S31AFE00EBAF142C1E000040810050801900087FC5F3787F8500008A
-S31AFE00EBC47F83E3787FA4EB784FFEE3827D200026552907FE7DE0
-S31AFE00EBD92900D07C0048787CA948387D2503787F6803A67CBF61
-S31AFE00EBEE2B784E800021480001C17C7A1B794182FF9893980063
-S31AFE00EC03003C0002004C00012C7C108BA64C00012C3C60FE0170
-S31AFE00EC1838633F6C4BFFCC297F43D378800100347C0803A682ED
-S31AFE00EC2DE1000C8301001083210014834100188361001C8381B5
-S31AFE00EC42002083A1002483C1002883E1002C382100304E8000FE
-S31AFE00EC572028030007418100883D60FE01396B40805460103A0A
-S31AFE00EC6C7D4B002E3D20FE01392940807D4A4A147D4903A64E39
-S31AFE00EC818004203C60FE0138633F904E8000203C60FE013863AD
-S31AFE00EC963FB04E8000203C60FE0138633FC84E8000203C60FEC3
-S31AFE00ECAB0138633FE04E8000203C60FE0138633FFC4E80002048
-S31AFE00ECC03C60FE01386340144E8000203C60FE01386340244EDB
-S31AFE00ECD58000203C60FE01386340484E8000203C60FE013863A4
-S31AFE00ECEA406C4E8000209421FFE07C0802A693A1001493C1001B
-S31AFE00ECFF1893E1001C900100243D20000183E91F1C3C80FE01DF
-S31AFE00ED143CA0FE013884EE8038A5EF1C7CA428507FE3FB784B41
-S31AFE00ED29FFC3193FC000013BA0000838610008380000807C0935
-S31AFE00ED3E03A639200000612010003D600E007C0004AC7D398B11
-S31AFE00ED53A67D788BA67C198BA67D788BA6392900104200FFE05C
-S31AFE00ED687FE803A64E8000217D3DF1D63D600001396B1F1C3D58
-S31AFE00ED7D29FE003C00FE00912B0018900B001493CB000893ABF5
-S31AFE00ED92000C38600000800100247C0803A683A1001483C10076
-S31AFE00EDA71883E1001C382100204E8000209421FFF07C0802A684
-S31AFE00EDBC93E1000C900100143C00007E7C7F1B786000007E7F74
-S31AFE00EDD1E90039418200503C60FE01386340A07FE4FB784BFFBE
-S31AFE00EDE6CA613C000010600000107FE90039386000044082002E
-S31AFE00EDFB303C600020606300207FE318387C6300D07C63FE7082
-S31AFE00EE107C6018F8546307BC540007387C63037848000008380E
-S31AFE00EE25600000800100147C0803A683E1000C382100104E800B
-S31AFE00EE3A00203D20FE00392920007C0348407C8023783960008B
-S31AFE00EE4F004181000C7C0048404181001C3D20FE0138891D4C74
-S31AFE00EE647C032040418100107C00204040810008396000017D28
-S31AFE00EE79635B784E8000207D588AA6554A0FFE2C0A00004182B2
-S31AFE00EE8E0040380000807C0903A639200000612010003D600EB0
-S31AFE00EEA3007C0004AC7D398BA67D788BA67C198BA67D788BA631
-S31AFE00EEB8392900104200FFE03C0004007C0004AC7C188BA63D40
-S31AFE00EECD60FE00380000AA980B055539200055992B02AA380099
-S31AFE00EEE20090980B0555892B00002C0A000099230000880B0051
-S31AFE00EEF701392000FF98030001992B0000418200103D600200D7
-S31AFE00EF0C7C0004AC7D788BA6386000004E8000207C6A1B787C1F
-S31AFE00EF21F88AA654E70FFE2C07000041820040380000807C09F4
-S31AFE00EF3603A639200000612010003D600E007C0004AC7D398B17
-S31AFE00EF4BA67D788BA67C198BA67D788BA6392900104200FFE062
-S31AFE00EF603C0004007C0004AC7C188BA655480010396000AA99DE
-S31AFE00EF7568055539200055992802AA38000080980805559968F3
-S31AFE00EF8A0555992802AA392000327D2903A62F870000380000DF
-S31AFE00EF9F30980A0000396A0001420000003D20004C7D2903A6A9
-S31AFE00EFB4880A00005400067261294B407D2903A65400063E8862
-S31AFE00EFC96A0000546906727C09000041820014706000207D20A7
-S31AFE00EFDE4B78408200084200FFE4380000FF98080000892A00DE
-S31AFE00EFF3007D6A5B782C0900FF3D2000014082001C3529FFFF7F
-S31AFE00F00840810014880A0000394A00012C0000FF4182FFEC7DAE
-S31AFE00F01D2BFE707D604A787C0058507C00FE707C6300384D9E92
-S31AFE00F03200203C0002007C0004AC7C188BA64E8000209421FFD4
-S31AFE00F047F093C1000893E1000C7D588AA6554A0FFE2C0A0000FD
-S31AFE00F05C41820040380000807C0903A639200000612010003D8B
-S31AFE00F071000E007C0004AC7D398BA67D188BA67C198BA67D1844
-S31AFE00F0868BA6392900104200FFE03D2004007C0004AC7D388BE0
-S31AFE00F09BA62C0500002F8A0000546A0010408100A03BC000AAF8
-S31AFE00F0B03BE00055398000A038C000FF9BCA05559BEA02AA99FE
-S31AFE00F0C58A0555880400003920003198030000380000327C09AE
-S31AFE00F0DA03A63904000138E300013929FFFF4200FFFC880300F2
-S31AFE00F0EF007D2903A6540006725400063E896300005569067233
-S31AFE00F1047C09000041820014716000207D204B78408200084239
-S31AFE00F11900FFE498CA000089230000880400007D0443787C099F
-S31AFE00F12E00007CE33B784182000C396000FF4800000C34A5FF23
-S31AFE00F143FF4181FF787CA8FE707D002A787C0040507C00FE70D4
-S31AFE00F158392000FF992A00007D6B0038419E00103D2002007C99
-S31AFE00F16D0004AC7D388BA67D635B7883C1000883E1000C38212B
-S31AFE00F18200104E8000209421FFF87C0802A69001000C3803FFC7
-S31AFE00F197FE2800001D418100A03D60FE01396B40B05400103AEC
-S31AFE00F1AC7D4B002E3D20FE01392940B07D4A4A147D4903A64EC4
-S31AFE00F1C18004203860000248000078386000414BFFA29154632A
-S31AFE00F1D67F3E2C0300024182004028030002418100102C030001
-S31AFE00F1EB01418200384800004C2C030004418200242C0300082A
-S31AFE00F2004082003C38600008480000383860000E480000303881
-S31AFE00F21560000C4800002838600004480000203860000548001B
-S31AFE00F22A00183860000A480000103860000B480000083860002E
-S31AFE00F23F0F8001000C7C0803A6382100084E8000203D20000041
-S31AFE00F254816939A0806B00985463C23E4E8000209421FFF87C8E
-S31AFE00F2690802A69001000C7C641B78386000404BFFA1FD80018B
-S31AFE00F27E000C7C0803A6382100084E8000209421FFF87C0802BD
-S31AFE00F293A69001000C386000414BFFA1C56064060054800420D4
-S31AFE00F2A83D2000005484045E900936F0386000414BFFA1BD80F6
-S31AFE00F2BD01000C7C0803A6382100084E8000209421FFF87C087F
-S31AFE00F2D202A69001000C386000414BFFA1853D200000808936F9
-S31AFE00F2E7F0546305E8380000007C642378900936F0386000412F
-S31AFE00F2FC4BFFA1798001000C7C0803A6382100084E8000204E3E
-S31AFE00F3118000204E8000209421FFF87C0802A69001000C386048
-S31AFE00F32600404BFFA1393D20FE0139299D387C634A7820030013
-S31AFE00F33B007C6019148001000C7C0803A6382100084E800020A7
-S31AFE00F3509421FFF87C0802A69001000C386000404BFFA1013833
-S31AFE00F365830004386000404BFFA1098001000C7C0803A6382129
-S31AFE00F37A00084E8000209421FFF87C0802A69001000C3D2000B2
-S31AFE00F38F00800936F42C0000004082001038000001900936F4B8
-S31AFE00F3A4480008118001000C7C0803A6382100084E8000203DA9
-S31AFE00F3B9200000800936F82C0000004C82002038000001900978
-S31AFE00F3CE36F87D1E9AA67508FFFF3D2000017D2903A63800803D
-S31AFE00F3E301B00809C07C0902A6600086A07C0903A6420000006C
-S31AFE00F3F880080ABC3D600001600000C090080ABC81280AB861C6
-S31AFE00F40D6B00A2552906AE91280AB8916809F07CE902A690E8B5
-S31AFE00F4220AE038002800B0083E8039683E8038002808B00B008F
-S31AFE00F4370239200091B12809C03940000191480030380000185B
-S31AFE00F44C980B0004980B0005B14B0006B0EB0028B0EB002CB01C
-S31AFE00F461EB002EB14B003039282800B0E900023800B000B00889
-S31AFE00F476280038082810900900043968280838082820B14B00EB
-S31AFE00F48B02900B000439202000B1282808380000FF98080A86DE
-S31AFE00F4A03920000599280A8A38004820B0080A8239204823B147
-S31AFE00F4B5280A824E80002039233E80A00900207D4302147D4B1B
-S31AFE00F4CA5378A00A00007008800041820028A00A00007008208F
-S31AFE00F4DF0041820010A00900027D43021448000008394A0008E5
-S31AFE00F4F47C0A58004082FFD47D495378A0090000700080004022
-S31AFE00F50982FFF87D2A4B787C090378A00A0000700B100041820E
-S31AFE00F51E0014A00A00007000EFFFB00A0000B12A0002A12A0056
-S31AFE00F533023900000038090001B00A0002816A00045529043ED7
-S31AFE00F5487C8B49AEA00A000060008000B00A0000A12A0000712C
-S31AFE00F55D208000418200647D4B53787D0A43783D00000761084C
-S31AFE00F572FFFF394A00017C0A400040820038A1230A8239400075
-S31AFE00F587007129FFFDB1230A82A00B00005400047EB00B000039
-S31AFE00F59CA1230A8261290002B1230A82A00B000060008000B0DF
-S31AFE00F5B10B0000A00B0000700980004082FFB87D6A5B787D4999
-S31AFE00F5C65378A0090000700080004082FFF87D2A4B78B00A00EB
-S31AFE00F5DB024E80002038E33E80A10700107C03422E7D43421491
-S31AFE00F5F0700680004182000C386000004E800020812A000439CF
-S31AFE00F6056000008809000098040000B0CA0002812A0004996932
-S31AFE00F61A00007C03422E600080007C03432E7D388AA655290FA6
-S31AFE00F62FFE2C09000041820028812A0004A00700062C0000001C
-S31AFE00F644408100187C004BAC7C0004AC3400FFF039290010415F
-S31AFE00F65981FFF0386000014E8000209421FFE87C0802A693E165
-S31AFE00F66E00149001001C7C7F1B787FE3FB78388100084BFFFF55
-S31AFE00F683612C0300004182FFF0886100088001001C7C0803A671
-S31AFE00F69883E10014382100184E8000209421FFE87C0802A69327
-S31AFE00F6ADA1000C93C1001093E100149001001C7CBF2B787FE0C1
-S31AFE00F6C2FB782C0000007C7D1B787C9E23783BFFFFFF41820054
-S31AFE00F6D724889E00007FA3EB784BFFFDDD7FE0FB782C00000029
-S31AFE00F6EC3BDE00013BFFFFFF4082FFE48001001C7C0803A683C1
-S31AFE00F701A1000C83C1001083E10014382100184E800020942162
-S31AFE00F716FFE87C0802A693A1000C93C1001093E100149001000A
-S31AFE00F72B1C7CBF2B787FE0FB782C0000007C7D1B787C9E23788C
-S31AFE00F7403BFFFFFF418200247FA3EB784BFFFF197FE0FB782CAC
-S31AFE00F755000000987E00003BDE00013BFFFFFF4082FFE480010D
-S31AFE00F76A001C7C0803A683A1000C83C1001083E10014382100E8
-S31AFE00F77F184E8000209421FFE87C0802A69381000893A1000C47
-S31AFE00F79493C1001093E100149001001C3D200000800936FC3D6E
-S31AFE00F7A96000001FE0000A3B8B32007C7D1B787C9E237848005D
-S31AFE00F7BE0014813C0048386000647D2803A64E8000217FA3EBD3
-S31AFE00F7D3787FC4F3784BFFFE097C631B79408200102C1F000016
-S31AFE00F7E83BFFFFFF4082FFD48001001C7C0803A68381000883E2
-S31AFE00F7FDA1000C83C1001083E10014382100184E800020942166
-S31AFE00F812FF807C8023782C00000590A1001090C1001490E1007F
-S31AFE00F827189101001C91210020914100249081000C3860000085
-S31AFE00F83C4182002C28000005418100102C000004418201444845
-S31AFE00F8510002B42C000006418202782C000007418202784800C1
-S31AFE00F86602A03D60FE01800B41FC3D20FE01392941287D2902B4
-S31AFE00F87B147D2903A64E8004203D20FF0061290014800900009C
-S31AFE00F8907C0006AC60000400900900007C0006AC480000E03DA1
-S31AFE00F8A520FF0061290200A00900007C0006AC60000008B009A7
-S31AFE00F8BA00007C0006AC480000C03D20FF0061290200A009006E
-S31AFE00F8CF007C0006AC60000004B00900007C0006AC480000A0BF
-S31AFE00F8E43D20FF0061290240A00900007C0006AC60000004B0F8
-S31AFE00F8F90900007C0006AC480000803D20FF0061290220A00946
-S31AFE00F90E00007C0006AC60000008B00900007C0006AC4800001B
-S31AFE00F923603D20FF0061290220A00900007C0006AC6000000428
-S31AFE00F938B00900007C0006AC480000403D20FF00612909408098
-S31AFE00F94D0900007C0006AC60000080900900007C0006AC48007B
-S31AFE00F96200203D20FF0061290948800900007C0006AC6000001E
-S31AFE00F97710900900007C0006AC3D20000038000001900937003A
-S31AFE00F98C480001783D2000008069370038000000900937003DDF
-S31AFE00F9A160FE01800B42E43D20FE01392942107D2902147D29CB
-S31AFE00F9B603A64E8004203D20FF0061290014800900007C000698
-S31AFE00F9CBAC540005A8900900007C0006AC4800012C3D20FF00DE
-S31AFE00F9E061290200A00900007C0006AC7000FFF75400043EB0FF
-S31AFE00F9F50900007C0006AC480001083D20FF0061290200A009E0
-S31AFE00FA0A00007C0006AC7000FFFB5400043EB00900007C00067A
-S31AFE00FA1FAC480000E43D20FF0061290240A00900007C0006ACF7
-S31AFE00FA347000FFFB5400043EB00900007C0006AC480000C03D8D
-S31AFE00FA4920FF0061290220A00900007C0006AC7000FFF7540048
-S31AFE00FA5E043EB00900007C0006AC4800009C3D20FF006129029A
-S31AFE00FA7320A00900007C0006AC7000FFFB5400043EB0090000CA
-S31AFE00FA887C0006AC480000783D20FF0061290940800900007C43
-S31AFE00FA9D0006AC5400066E900900007C0006AC480000583D2012
-S31AFE00FAB2FF0061290948800900007C0006AC5400073490090082
-S31AFE00FAC7007C0006AC4800003838600036480000303961000890
-S31AFE00FADC380100883920000398610071992100709001007491CA
-S31AFE00FAF16100783D200000800B0008806936FC900936FC3821F4
-S31AFE00FB0600804E8000209421FFE87C0802A693C1001093E100D8
-S31AFE00FB1B149001001C7C9E2378392000007C7F1B78913E0000A5
-S31AFE00FB30881F0A86700B00014182006038000001981F0A86A1C5
-S31AFE00FB453F2800391F2800712080004082003C8128000439408B
-S31AFE00FB5A0001880900003960B00098010008B1480002B17F28C3
-S31AFE00FB6F0038610008388000014BFFB3A92C0300004182000C7F
-S31AFE00FB8438000001901E000038000010901F094C392000017D5E
-S31AFE00FB99234B788001001C7C0803A683C1001083E1001438217E
-S31AFE00FBAE00184E8000209421FFF07C0802A693C1000893E10098
-S31AFE00FBC30C900100143D2000003BE93200813F00343860FFFF3B
-S31AFE00FBD87D2803A64E8000217C7E1B787C1E9AA67400FFFF3DC1
-S31AFE00FBED200000800937042C00000040820094380000019009C7
-S31AFE00FC0237044BFFF7B5813F0034386000007D2803A64E800010
-S31AFE00FC1721815F00147C1E9AA67400FFFF3D20FE01900A00007D
-S31AFE00FC2C3929F6A4912A00043D60FE01396BF7143D20FE0191CC
-S31AFE00FC416A00083929F4BC912A000C3D60FE01396BF6643D2068
-S31AFE00FC56FE01916A00103929F810912A00143D60FE01396BFB17
-S31AFE00FC6B0C3D20FE01916A00183929F784912A001C801F00347E
-S31AFE00FC807FC3F3787C0803A64E800021800100147C0803A6835D
-S31AFE00FC95C1000883E1000C382100104E8000209421FFF07C089E
-S31AFE00FCAA02A693E1000C900100143D20000080693A087C9F23AE
-S31AFE00FCBF782C030000418200084BFFB379881F00002C0000026F
-S31AFE00FCD44082002C3C800000388439F8387F001C38A000064B84
-S31AFE00FCE9FFBDCD2C03000040820010801F00103D2000009009D3
-S31AFE00FCFE3708800100147C0803A683E1000C382100104E800045
-S31AFE00FD13209421FE887C0802A69321015C9341016093610164B1
-S31AFE00FD289381016893A1016C93C1017093E101749001017C3DAB
-S31AFE00FD3D20000090693A08386100187C791B783880000038A089
-S31AFE00FD52012C4BFFB3C53D200000808939F8396939F8A06B0034
-S31AFE00FD67043D201234394000003CE0000038C00001612955551A
-S31AFE00FD7C396000063907370898C100199961001A9121001C9963
-S31AFE00FD9147370899480003380000FF90810034B0610038980191
-S31AFE00FDA6015198C1001899480001994800023CA0FE017D1D4304
-S31AFE00FDBB7838A5FCA498010148980101499801014A9801014BAC
-S31AFE00FDD09801014C9801014D9801014E9801014F98010150385A
-S31AFE00FDE561000838800044480000D53B8000023B4101483F6062
-S31AFE00FDFA000048001F0D7C7E1B787F23CB783880012C7F45D38E
-S31AFE00FE0F7838C0004338E000444800024948000AA1881B370863
-S31AFE00FE242C00000040820028881D00012C0000004082001C8877
-S31AFE00FE391D00022C000000408200108BFD00032C1F00004182FA
-S31AFE00FE4E001438600044480000BD386000004800003848001E28
-S31AFE00FE63A97C7E1850280307CF4081FFB07F80E3782C00000084
-S31AFE00FE783B9CFFFF4181FF80386000444800008D3D20000093BA
-S31AFE00FE8DE93A003860FFFF8001017C7C0803A68321015C8341B3
-S31AFE00FEA20160836101648381016883A1016C83C1017083E10185
-S31AFE00FEB774382101784E8000203D20000081293A0C2C0900007C
-S31AFE00FECC41820024A00900047C0020004082000C3860FFFF4E3B
-S31AFE00FEE1800020812900002C0900004082FFE43D2000008009FE
-S31AFE00FEF63A0C90693A0CB083000490A3000890030000386000D1
-S31AFE00FF0B004E8000203D20000081293A0C396000002C090000D4
-S31AFE00FF204D8200207D2A4B78A00900047C0018004082001C2C24
-S31AFE00FF350B00004182001080090000900B000048000008814997
-S31AFE00FF4A00007D2B4B78812900002C0900004082FFD03D200066
-S31AFE00FF5F0091493A0C4E8000209421FFE87C0802A69381000897
-S31AFE00FF7493A1000C93C1001093E100149001001C7C7E1B78838B
-S31AFE00FF89FE000838000000A13F00066000FFFF7C090000817E59
-S31AFE00FF9E00047C9C23784082000C38000000B01F0006A01F00F9
-S31AFE00FFB3047D635B78B00B0002A3BF0004480008CD7C651B78CA
-S31AFE00FFC87FA4EB787FE3FB78480008512C030000408200603D96
-S31AFE00FFDD20000081693A0C2C0B000041820050A12B0004A01FE2
-S31AFE00FFF200027C09000040820034A0BF0004800B00087D635B48
-S31AFE0100077838A5FFF87F86E378A0FF0000389F00087C0803A688
-S31AFE01001C4E8000217FC3F378480007D948000018816B00002C8E
-S31AFE0100310B00004082FFB87FC3F378480007C18001001C7C0853
-S31AFE01004603A68381000883A1000C83C1001083E1001438210096
-S31AFE01005B184E8000209421FFD87C0802A6930100089321000C71
-S31AFE01007093410010936100149381001893A1001C93C100209307
-S31AFE010085E100249001002C7C9C2378281C05C07C791B787CB827
-S31AFE01009A2B787CDA33787CFE3B78418100A8386005EA4800063C
-S31AFE0100AFED7C7F1B794182009883BF0008381C0008837F0004B4
-S31AFE0100C4B01F000CB3DD0000B35D0002A01F000C392000007F02
-S31AFE0100D985E378B01D0004B13D00067F24CB78387D00084BFF7B
-S31AFE0100EEAF553D2000008009370839600011901B000C813800B5
-S31AFE01010300997B0009913B0010A01D00047F63DB78B01B000226
-S31AFE010118A39F000C480007717C651B787F84E3787FA3EB784820
-S31AFE01012D0006F5B07D00067F05C3787FE3FB78388000114800E5
-S31AFE01014204457FE3FB78480006B58001002C7C0803A683010024
-S31AFE010157088321000C83410010836100148381001883A1001CAE
-S31AFE01016C83C1002083E10024382100284E8000209421FFD87C16
-S31AFE0101810802A69381001893A1001C93C1002093E1002490019B
-S31AFE010196002C7CBF2B787C7D1B787C9C23787CDE33787FE3FBA4
-S31AFE0101AB783881000848001A252C03000041800024A0DF0004E3
-S31AFE0101C0A0FE00047FA3EB787F84E37838A100084BFFFE9138AE
-S31AFE0101D56000004800001C3C60FE013C80FE01386342F8388465
-S31AFE0101EA431C4BFFB6593860FFFF8001002C7C0803A6838100CF
-S31AFE0101FF1883A1001C83C1002083E10024382100284E80002033
-S31AFE0102149421FFE87C0802A69381000893A1000C93C1001093B5
-S31AFE010229E100149001001C3F8000007CBF2B783D200000807C23
-S31AFE01023E3A107CDD33787CFE3B7893E93A144BFFADF53D200018
-S31AFE0102530081693A182C0B00004182001CB3CB0004801D000020
-S31AFE01026839200000900B0000913C3A10480000143C60FE013842
-S31AFE01027D63432C7FE4FB784BFFB5C18001001C7C0803A6838131
-S31AFE010292000883A1000C83C1001083E10014382100184E80000F
-S31AFE0102A7209421FFD07C0802A6934100189361001C938100203D
-S31AFE0102BC93A1002493C1002893E1002C90010034A3A600047C26
-S31AFE0102D1BA2B787C7E1B787C9C23783CA0FE017CFF3B7838A590
-S31AFE0102E60214386100087FA4EB784BFFFBD12C030000408000BC
-S31AFE0102FB0C3860FFFF48000084813F00043C001062817F000009
-S31AFE01031060004DD37D2900161D6B03E85529D1BE7F6B4A143D92
-S31AFE0103254000003D2000003D60000093CA3A1093893A14934B95
-S31AFE01033A3A18480019CD7FBAEB787C7E1B783BE0FFFF3FA00008
-S31AFE01034F003F800000480019B57C7E18507C03D84040800018EE
-S31AFE01036448000559801D3A102C0000004082FFE483FC3A147FD5
-S31AFE01037943D3784BFFFB957FE3FB78800100347C0803A6834187
-S31AFE01038E00188361001C8381002083A1002483C1002883E10001
-S31AFE0103A32C382100304E8000209421FFF07C0802A693E1000C4D
-S31AFE0103B8900100147C691B78880900002C0000FF4082002C88DC
-S31AFE0103CD0900012C0000FF40820020880900022C0000FF40827F
-S31AFE0103E2001488090003386000012C0000FF418200643FE0004F
-S31AFE0103F7007D234B78389F370838A000044BFFB6B12C030000B7
-S31AFE01040C4082000C3860000148000040881F3708389F37082CBF
-S31AFE0104210000004082002C880400012C000000408200208804AC
-S31AFE01043600022C0000004082001488040003386000012C000054
-S31AFE01044B004182000838600000800100147C0803A683E1000C02
-S31AFE010460382100104E8000209421FFD87C0802A693A1001C9390
-S31AFE010475C1002093E100249001002C7C7E1B7883FE00047C9D0C
-S31AFE01048A2378387F00104BFFFF1D2C03000041820020A09F003F
-S31AFE01049F007FE3FB785484D6BA38A00000480003752C0300003F
-S31AFE0104B4418200107FC3F37848000341480000A8801F000C8106
-S31AFE0104C93D0000A17D0004900100089121000CB1610010A13F61
-S31AFE0104DE0000A01F00025523D6BA7C030050B01E000C881F00EB
-S31AFE0104F3092C00000641820038418100102C00000141820014E3
-S31AFE010508480000582C000011418200384800004C7C1F1A149014
-S31AFE01051D1E00087FC3F37838810008480005054800003C7C1FBF
-S31AFE0105321A14901E00087FC3F3783881000848000AE5480000DE
-S31AFE010547247C1F1A14901E00087FC3F378388100084BFFFA1134
-S31AFE01055C4800000C7FC3F378480002998001002C7C0803A68344
-S31AFE010571A1001C83C1002083E10024382100284E8000209421A3
-S31AFE010586FFE07C0802A69361000C9381001093A1001493C10090
-S31AFE01059B1893E1001C900100247C7C1B7883BC000480FC000897
-S31AFE0105B0A13C000C7CFD38507D293A14B13C000CA01D00005449
-S31AFE0105C5E9352E5400053E600040007000F0FF7C004B78B01D2E
-S31AFE0105DA000039200000993D00013D000000A1283A1CA01C00BF
-S31AFE0105EF0CB13D0004B01D000239690001B1683A1C394000009A
-S31AFE01060438000040989D0009981D0008B15D000AB15D00063D00
-S31AFE010619200000800937087CBB2B78901D000C813B00007CE430
-S31AFE01062E3B78913D00107FA3EB7838A00000480001E5B07D0069
-S31AFE0106430A7F83E378389B000438A0080048000371800100241E
-S31AFE0106587C0803A68361000C8381001083A1001483C100188340
-S31AFE01066DE1001C382100204E8000203D000000800837182C00CF
-S31AFE01068200004C8200203800000190083718380000047C09038C
-S31AFE010697A63C8000003D2000013D60000181443A2038A901C02A
-S31AFE0106AC390B017038C005EA38E000007D272A147120000239D2
-S31AFE0106C1690002914800007C00002654001FFE7C0000D07D6B94
-S31AFE0106D600787D2900387D295B78912800107D0A4378B0C800B8
-S31AFE0106EB0E390A001438E705EC4200FFC491443A204E8000205E
-S31AFE0107009421FFE87C0802A69381000893A1000C93C1001093C4
-S31AFE010715E100149001001C3D2000013BE901703BC000003F807B
-S31AFE01072AFE017FFDFB7880DF0010A0FF000EA11F000C813F001F
-S31AFE01073F007FC4F3787FA5EB78387C43584BFFB0F93BDE00010F
-S31AFE0107542C1E00033BFF00143BBD00144081FFD03D2000003CBB
-S31AFE01076960FE0180893A20386343844BFFB0D18001001C7C0866
-S31AFE01077E03A68381000883A1000C83C1001083E1001438210057
-S31AFE010793184E8000203CA0000080653A202C0300004D8200200D
-S31AFE0107A83CE00000814737103D20000080093714394A00017CDB
-S31AFE0107BDC050503C8000008164370C8103001080030000392866
-S31AFE0107D2001490053A207C0658009123000891030004380000A4
-S31AFE0107E700B003000C914737104C81002090C4370C4E800020A8
-S31AFE0107FC3D400000812A37103D600000800B3A203929FFFF9101
-S31AFE0108112A3710906B3A20900300004E8000203484FFFE418010
-S31AFE0108260018A00300003484FFFE7CA50214386300024080FFB5
-S31AFE01083BF02C04FFFF40820010880300005400402E7CA502142F
-S31AFE01085054AB043E54A9843E380000007CA95A146000FFFF7CE9
-S31AFE0108650500004081000C3D25FFFF38A900017CA928F85523A8
-S31AFE01087AC63E5463402E5520063E7C031B784E800020A12300BE
-S31AFE01088F0EA003000CA16300107C004A14A143001289230009F9
-S31AFE0108A47C005A147C005214A06300027C004A147C601A144E37
-S31AFE0108B98000209421FFD87C0802A69381001893A1001C93C1FD
-S31AFE0108CE002093E100249001002C3F8000003FA000003FC000FE
-S31AFE0108E300386005EA4BFFFEB17C7F1B79408200183C60FE0177
-S31AFE0108F8386343944BFFAF494BFFFE0148000000809F0010383A
-S31AFE01090D61000838A005EA4BFFDB8D5460043E2C000000B07F9D
-S31AFE010922000C41820074A0010014813C37242C00080039290015
-S31AFE01093701913C3724418200182C000806418200347FE3FB789C
-S31AFE01094C4BFFFEB14BFFFF94813D371C801F0010392900019107
-S31AFE0109613D371C901F00047FE3FB783881000E4BFFFAF94BFF16
-S31AFE010976FF70813E3720801F001039290001913E3720901F00FB
-S31AFE01098B047FE3FB7848000F9D4BFFFF507FE3FB784BFFFE616E
-S31AFE0109A08001002C7C0803A68381001883A1001C83C100208320
-S31AFE0109B5E10024382100284E8000209421FFE87C0802A690015B
-S31AFE0109CA001C80040000A144000490010008390100083D200052
-S31AFE0109DF00B1480004396939F8A14B0004B0A10014800939F81F
-S31AFE0109F4A0A3000C808300109001000EB14100127D0343784B5E
-S31AFE010A09FFD83D3D600000812B372839290001912B3728800118
-S31AFE010A1E001C7C0803A6382100184E8000209421FFF07C0802EC
-S31AFE010A33A693C1000893E1000C900100147C7F1B78807F0008ED
-S31AFE010A487C9E2378A00300002C00080040820050A09F000C3873
-S31AFE010A5DA000004BFFFDC17C631B794082003C813F000838A0C6
-S31AFE010A72000098690000817F0008B06B0002807F0008A09F00FE
-S31AFE010A870C4BFFFD99813F00087FC5F378B06900027FE3FB7802
-S31AFE010A9C388000014BFFFAE57FE3FB784BFFFD55800100147CDC
-S31AFE010AB10803A683C1000883E1000C382100104E8000209421B2
-S31AFE010AC6FFD87C0802A693410010936100149381001893A100C7
-S31AFE010ADB1C93C1002093E100249001002C7C9B23787C7E1B78DD
-S31AFE010AF0736000023B9E002C83BC000483FC00087CBA2B78412E
-S31AFE010B0582004438000018B01C000C813F000C396000065169C3
-S31AFE010B1AE0063C000204913F000C600005B490010008387F0054
-S31AFE010B2F143881000838A000044BFFA50938000000B01E0016E7
-S31AFE010B4448000020A13E00163960000539290014B13C000C80AD
-S31AFE010B591F000C5160E006901F000C801F000C39600000516010
-S31AFE010B6EC10E901F000C813E00542C1A0000913F0004801E0018
-S31AFE010B8350B17F0010901F000840820054A01E0012B01F00005C
-S31AFE010B98A13E00149B7F000DB13F0002A01E00162C00000041F6
-S31AFE010BAD82000C63600008981F000D380005B4B01F000EB35F31
-S31AFE010BC200123D2000008009370839600006901D000C813E00CB
-S31AFE010BD708997D0009913D0010A01C000C7FA3EB78B01D0002E3
-S31AFE010BECA3BC000C4BFFFC9D7C651B787FA4EB787FE3FB784B87
-S31AFE010C01FFFC21B07F00107F83E3783880000638BE00084BFF1B
-S31AFE010C16F971801E00042C00000A408200243C8000013CA0FE05
-S31AFE010C2B0138A50E187FC6F378387E00186084D4C048000B5D05
-S31AFE010C4048000034881F000D7009000340820010A01E00162C1C
-S31AFE010C550000004182001C3CA0FE0138A50DF07FC6F378387E8B
-S31AFE010C6A0018388003E848000B298001002C7C0803A68341009B
-S31AFE010C7F10836100148381001883A1001C83C1002083E100240B
-S31AFE010C94382100284E8000209421FFE07C0802A69361000C9384
-S31AFE010CA981001093A1001493C1001893E1001C900100247C7CAF
-S31AFE010CBE1B7883FC0008815C0004A0DF0000A0FF0002807F0002
-S31AFE010CD30480BF000839000014B11C000C3BEA0014801F000CB2
-S31AFE010CE839200005396000005120E0065160C10E901F000C3930
-S31AFE010CFD200400B13F000EB17F0010B17F0012B0EA0014B0DFFC
-S31AFE010D120002991F000D907F000890BF00043D20000080093779
-S31AFE010D27087C9B2378900A000C813B000038000006912A00108D
-S31AFE010D3C980A0009A13C000C7D435378B12A0002A3BC000C4BEB
-S31AFE010D51FFFB3D7C651B787FA4EB787FE3FB784BFFFAC1B07F4E
-S31AFE010D6600107F83E3787F65DB78388000064BFFF8118001003D
-S31AFE010D7B247C0803A68361000C8381001083A1001483C1001875
-S31AFE010D9083E1001C382100204E8000203D20000081293A2439C4
-S31AFE010DA56000002C0900004D8200207D2A4B787C0918004082E7
-S31AFE010DBA001C2C0B00004182001080090000900B00004800008D
-S31AFE010DCF08814900007D2B4B78812900002C0900004082FFD459
-S31AFE010DE43D20000091493A244E8000209421FFF87C0802A6900A
-S31AFE010DF901000C3880000038A000014BFFFCC18001000C7C082A
-S31AFE010E0E03A6382100084E8000209421FFF87C0802A690010069
-S31AFE010E230C38000000900300044BFFFF718001000C7C0803A666
-S31AFE010E38382100084E8000209421FFF07C0802A693E1000C9071
-S31AFE010E4D0100147C7F1B784800001080030000901F00404BFFD4
-S31AFE010E62F99D807F00402C0300004082FFEC800100147C0803A9
-S31AFE010E77A683E1000C382100104E8000209421FFE87C0802A62C
-S31AFE010E8C93A1000C93C1001093E100149001001C7C7D1B7838AF
-S31AFE010EA1000000901D0004387D00184800097D7FA3EB784BFF1C
-S31AFE010EB6FF8D7FA3EB784BFFFEE18001001C7C0803A683A100FA
-S31AFE010ECB0C83C1001083E10014382100184E8000208124000829
-S31AFE010EE080E30050814900048009000CA164000C7D0750515458
-S31AFE010EF50036BA7D6058507D090214418100707C0A38507D60B5
-S31AFE010F0A58517D08021440810060814300407D275A142C0A001C
-S31AFE010F1F0038000000912300509004000041820030800A00006B
-S31AFE010F342C0000004182001C7D49537881290000800900002CA8
-S31AFE010F490000004082FFF47D2A4B78908A000048000010910369
-S31AFE010F5E00449083004091630048386000014E80002038600087
-S31AFE010F73004E8000209421FFF07C0802A693C1000893E1000CCA
-S31AFE010F8890010014812400087C7F1B7883C90008801F00547DAB
-S31AFE010F9D20F0514081006C387F001848000881811F0054A15F18
-S31AFE010FB200167D68F0505549043E7F8B48004FFEE3827C00008A
-S31AFE010FC726540007FE7C0000D07D2900787D6B00387D6B4B795B
-S31AFE010FDC408100307D2B50505525043E2C0500007C085A149053
-S31AFE010FF11F0054B13F001641820014807F0034386300147C83B5
-S31AFE0110065A144BFFA039800100147C0803A683C1000883E100CD
-S31AFE01101B0C382100104E8000209421FFE07C0802A69361000C98
-S31AFE0110309381001093A1001493C1001893E1001C900100247C0D
-S31AFE0110457C1B78807C0004A01C000C83FC0008B0030002A3BC1F
-S31AFE01105A000C7C9E23784BFFF82D7C651B787FA4EB787FE3FBF5
-S31AFE01106F784BFFF7B12C0300003B600000408203A03D20000071
-S31AFE01108483A93A244800000883BD00002C1D00004182037CA10C
-S31AFE0110993D0012A01F00027C0900004082FFE8A13D00142C09D8
-S31AFE0110AE000041820028A01F00007C0900004082FFD07FC3F333
-S31AFE0110C378389D000838A000044BFFA9E92C0300004082FFB85E
-S31AFE0110D8801D0004817E0004A13E00082C000002917D000CB17A
-S31AFE0110ED3D001041820024881F000D70090004418200187FA387
-S31AFE011102EB784BFFFD817F83E3784BFFF6F14800031C813D00F5
-S31AFE011117043809FFFF28000009418102FC3D60FE01396B43B84F
-S31AFE01112C5400103A7D4B002E3D20FE01392943B87D4A4A147DBA
-S31AFE0111414903A64E800420881F000D7009000241820040380046
-S31AFE0111560002901D0004813F0004A17F000039290001913D00B7
-S31AFE01116B50B17D0014801E000039200000901D0008B13D004CF2
-S31AFE0111807FA3EB78B13D001638800012480002247FC4F3787F67
-S31AFE01119583E3784BFFFB0548000280387D001848000685881F07
-S31AFE0111AA000D700900044182001038000001901D00044800029A
-S31AFE0111BF6070090002408202387009001041820250813D00548F
-S31AFE0111D4807F0008392900017C0348004082023C380000049004
-S31AFE0111E97D0054901D00044800022C881F000D83DD0050700917
-S31AFE0111FE0010418200107FA3EB787F84E3784BFFFD6D7FA3EB50
-S31AFE011213787F84E3784BFFFCC5881F000D7C7B1B787009000128
-S31AFE01122841820024807F0004801D00507C030000408200143848
-S31AFE01123D03000139200005901D0050913D0004801D00507C00FD
-S31AFE011252F00040820010A01D004C2C000000418201BCA3FD006B
-S31AFE011267162C1F000040820024387D0018480005B57FA3EB78D2
-S31AFE01127C3880001038A000004BFFF841B3FD004C480001903828
-S31AFE011291000001B01D004C48000184881F000D7009001041825C
-S31AFE0112A601787FA3EB787F84E3784BFFFCC9813D0054801F0012
-S31AFE0112BB08392900017C0048004082015838000000901D0004E6
-S31AFE0112D07FA3EB784BFFFAC948000144881F000D700900104167
-S31AFE0112E58200607FA3EB787F84E3784BFFFC89813D0054801FAA
-S31AFE0112FA0008392900017C00480040820040881F000D7009007C
-S31AFE01130F014182002C813D00503800000A39290001913D005003
-S31AFE011324901D00047FA3EB783880001038A000004BFFF79148BF
-S31AFE01133900000C38000008901D0004881F000D700900014182AC
-S31AFE01134E00D0387D0018480004D5813D00503800000939290016
-S31AFE01136301913D0050901D00047FA3EB78388000114800003CCE
-S31AFE0113787FA3EB787F84E3784BFFFB5D881F000D7C7B1B787028
-S31AFE01138D0900014182008C813D00503800000A39290001913D6C
-S31AFE0113A20050901D00047FA3EB783880001038A000004BFFF7CA
-S31AFE0113B71148000064881F000D70090010418200587FA3EB7882
-S31AFE0113CC7F84E3784BFFFBA9813D0054801F0008392900017C23
-S31AFE0113E100480040820038387D00184800043D3800000A901D6B
-S31AFE0113F60004480000247FA3EB783880000038A000014BFFF617
-S31AFE01140BBD480000107FC4F3787F83E3784BFFF8852C1B000099
-S31AFE0114204082000C7F83E3784BFFF3D5800100247C0803A68320
-S31AFE01143561000C8381001083A1001483C1001883E1001C3821AF
-S31AFE01144A00204E8000209421FFF87C0802A69001000C4BFFF4C7
-S31AFE01145F61480004218001000C7C0803A6382100084E8000209C
-S31AFE0114749421FFE87C0802A69381000893A1000C93C100109343
-S31AFE011489E100149001001C7C7D1B787C9C23783880000038A0D8
-S31AFE01149E06444BFF9C793D600000810B3A24381D006C395D00AD
-S31AFE0114B358901D0034915D003039200001380005EA93AB3A24AB
-S31AFE0114C8913D0004B39D0012B01D003A911D0000915D003C38BF
-S31AFE0114DD6000008001001C7C0803A68381000883A1000C83C14B
-S31AFE0114F2001083E10014382100184E8000209421FFF07C0802CF
-S31AFE011507A693E1000C900100147C7F1B78480000084BFFFF399F
-S31AFE01151C801F00042C00000041820010A01F00162C00000040D2
-S31AFE01153182FFE8800100147C0803A683E1000C382100104E80CE
-S31AFE01154600209421FFF07C0802A693E1000C900100147C7F1B60
-S31AFE01155B784BFFFFA5817F000469690004200900007D20491413
-S31AFE01157069600002214000007C0A01147D2A037941820020385C
-S31AFE011585000007901F00047FE3FB783880001138A000004BFFD2
-S31AFE01159AF52D480000242C0B00054082001C38000006901F00A2
-S31AFE0115AF047FE3FB783880001138A000004BFFF5097FE3FB788B
-S31AFE0115C44BFFF87D800100147C0803A683E1000C382100104E65
-S31AFE0115D98000209421FFE87C0802A69381000893A1000C93C1E0
-S31AFE0115EE001093E100149001001C7CBE2B797C7F1B787C9D23F6
-S31AFE0116037840810010801F00482C000000408200143860000003
-S31AFE011618480000B8907F0048480000AC3B800000480000648086
-S31AFE01162D9F00447FA3EB784BFF9A0D807F0040801F0048812380
-S31AFE01164200007FC0F050913F00407F9C02147FBD02144BFFF141
-S31AFE011657A9807F00402C0300004182FFBC81630008A123000C28
-S31AFE01166C800B000C540036BA7D204850913F0048800B000C5451
-S31AFE0116810036BA7D6B0214917F00442C1E00004182003C80BF85
-S31AFE01169600487C1E28004080FF90809F00447FA3EB787FC5F3C2
-S31AFE0116AB784BFF9995813F0044801F00487D29F2147C1E0050B4
-S31AFE0116C0901F0048913F00447F9CF2147F83E3788001001C7C6E
-S31AFE0116D50803A68381000883A1000C83C1001083E100143821E9
-S31AFE0116EA00184E8000209421FFF07C0802A693C1000893E10040
-S31AFE0116FF0C900100147CBE2B797C7F1B78807F00344081006C54
-S31AFE011714813F00043929FFFC280900014081000C3860FFFF48BD
-S31AFE011729000058A01F00162C00000040820048213E05B47D2985
-S31AFE01173E49107D294BB87D2048F87FC94838700005B47D3E0303
-S31AFE01175378386300147FC5F3784BFF98E57FE3FB78B3DF001662
-S31AFE0117683880001038A000004BFFF3557FC3F378480000083800
-S31AFE01177D600000800100147C0803A683C1000883E1000C38211B
-S31AFE01179200104E8000209421FFE87C0802A69381000893A10027
-S31AFE0117A70C93C1001093E100149001001C7C7F1B787CBD2B7819
-S31AFE0117BC7CDC3378909F0004480005453D20000081293A289052
-S31AFE0117D17F00082C09000093BF000C939F0010418200187C0942
-S31AFE0117E6F80041820020812900002C0900004082FFF03D200021
-S31AFE0117FB0080093A2893E93A28901F00008001001C7C0803A692
-S31AFE0118108381000883A1000C83C1001083E10014382100184EF7
-S31AFE0118258000203D20000081293A28394000002C0900004D8223
-S31AFE01183A00207D2B4B787C091800408200202C0A000041820091
-S31AFE01184F1080090000900A00004800001C8169000048000014A2
-S31AFE0118647D2A4B78812900002C0900004082FFD03D20000091A2
-S31AFE011879693A284E8000209421FFE87C0802A693A1000C93C140
-S31AFE01188E001093E100149001001C3D20000083E93A283BC000D5
-S31AFE0118A3002C1F00003FA000004182006448000459801F00088E
-S31AFE0118B8813F00047C6018507C0348404180003C2C1E0000417F
-S31AFE0118CD820010801F0000901E00004800000C801F0000901D82
-S31AFE0118E23A28801F000C807F00107C0803A63BC000004E8000DA
-S31AFE0118F72183FD3A284800000C7FFEFB7883FF00002C1F0000C3
-S31AFE01190C4082FFA48001001C7C0803A683A1000C83C10010838B
-S31AFE011921E10014382100184E8000209421FFE87C0802A693817C
-S31AFE011936000893A1000C93C1001093E100149001001C7C7D1BA2
-S31AFE01194B7883FD0004A13F0002A01F00006929080021690000C1
-S31AFE0119607D2B491468000001216000007C0B01147C0B48394199
-S31AFE0119758200D83FC00000387F0018389E370838A000044BFFF5
-S31AFE01198AA12D2C030000408200BCA01F00062C00000140820014
-S31AFE01199F64813F000E38000002B01F0006913F0018801F00085E
-S31AFE0119B4391F0008A1280004901F0012389F0012B124000480E9
-S31AFE0119C91E37083D200000901F000E814939F8392939F8A169F5
-S31AFE0119DE0004915F0008B16800043800001CB01D000C7FA3EB9C
-S31AFE0119F37838A008064BFFEFC9480000502C00000240820048AA
-S31AFE011A083FC00001801E19703B9E19702C000000418200348098
-S31AFE011A1D7C0008389F000E38A000044BFFA08D7C631B794082BE
-S31AFE011A32001CA01F000C817F0008813C0004B009000491690033
-S31AFE011A4700907E19707FA3EB784BFFEDAD8001001C7C0803A6BB
-S31AFE011A5C8381000883A1000C83C1001083E10014382100184EA9
-S31AFE011A718000209421FFD87C0802A6936100149381001893A19B
-S31AFE011A86001C93C1002093E100249001002C7C7F1B787C9D2397
-S31AFE011A9B783860002A4BFFECF97C7E1B79408200184800010017
-S31AFE011AB07FC3F3784BFFED4938600000480000F4817E000439DF
-S31AFE011AC5200004992B0005394000013900080038000006980B7E
-S31AFE011ADA0004B14B0000B14B0006B10B00023D20000080093715
-S31AFE011AEF083D400000900B000E392A39F8A1090004800A39F8B2
-S31AFE011B04B10B000C900B0008813F00003D400001912B00183911
-S31AFE011B196A1970380000FF93EB00089801000D93AB00043920C1
-S31AFE011B2E0001912A197098010008980100099801000A980100D9
-S31AFE011B430B9801000C3BA000073F8000013B60001CB37E000C42
-S31AFE011B587FC3F3783881000838A008064BFFEE5D480001A17C24
-S31AFE011B6D7F1B78480000144BFFED49801C19702C00000041825C
-S31AFE011B82FF30480001857C7F1850280300F94081FFE47FA0EB17
-S31AFE011B97782C0000003BBDFFFF4181FFB47FC3F3784BFFEC55ED
-S31AFE011BAC3860FFFF8001002C7C0803A683610014838100188318
-S31AFE011BC1A1001C83C1002083E10024382100284E80002094213D
-S31AFE011BD6FFD87C0802A6930100089321000C93410010936100BE
-S31AFE011BEB149381001893A1001C93C1002093E100249001002C87
-S31AFE011C003D2000013B29197C3B1900967C7B1B787C9C23787FCD
-S31AFE011C153DCB783B4000007FBEEB787F63DB787FC4F37838A05F
-S31AFE011C2A00044BFF9E892C0300007F5FD378418200383BBE00DF
-S31AFE011C3F0A7C1DC0003B5F000A4081FFD4801B00007F63DB7820
-S31AFE011C54901C0000389C00044BFFFE192C030000408000283842
-S31AFE011C6960FFFF4800006C7C1AC82EA13D0008817D0004B13CEE
-S31AFE011C7E0008901C0000917C00044800004C3CC0000081263719
-S31AFE011C932C80FC0000390900011D29000A3D600001A15C000859
-S31AFE011CA8801C0004396B197C7CE9592E7D295A142C080010B154
-S31AFE011CBD490008900900049106372C4082000C38000000900689
-S31AFE011CD2372C386000008001002C7C0803A683010008832100F3
-S31AFE011CE70C83410010836100148381001883A1001C83C100204B
-S31AFE011CFC83E10024382100284E8000209421FFF87C0802A6906F
-S31AFE011D1101000C3D2000003929320080090048386003E87C08E2
-S31AFE011D2603A64E8000213D200000806937303863000190693792
-S316FE011D3B308001000C7C0803A6382100084E80002059
-S31AFE011D503C746F7069633E0048656C702061626F75742068652F
-S31AFE011D656C703F0000000068656C70000000005B2D77203C74D1
-S31AFE011D7A696D656F75743E5D205B656E7472795D0000457865F5
-S31AFE011D8F6375746520636F64652061742061206C6F63617469BC
-S31AFE011DA46F6E0000676F00002D62203C6C6F636174696F6E3EF0
-S31AFE011DB9205B2D6C203C6C656E6774683E5D00446973706C6126
-S31AFE011DCE7920286865782064756D702920612072616E67652028
-S31AFE011DE36F66206D656D6F72790000000064756D7000000000A2
-S31AFE011DF85B4F4E207C204F46465D00004D616E616765206D61AE
-S31AFE011E0D6368696E652063616368657300000063616368650039
-S31AFE011E2200000A526564426F6F7428746D292064656275672074
-S31AFE011E37656E7669726F6E6D656E74202D206275696C7420250A
-S31AFE011E4C732C2025730A000031323A33373A3138000000004F22
-S31AFE011E616374203230203230303000506C6174666F726D3A208D
-S31AFE011E76257320282573292025730A0000004D6F746F726F6C03
-S31AFE011E8B61204D425800000000506F7765725043203836300077
-S31AFE011EA000000000436F70797269676874202843292032303009
-S31AFE011EB5302C20526564204861742C20496E632E0A0A00524104
-S31AFE011ECA4D3A2025702D25700A003D3D20457865637574696E17
-S31AFE011EDF6720626F6F742073637269707420696E2025642073C6
-S31AFE011EF465636F6E6473202D20656E746572205E4320746F20E9
-S31AFE011F0961626F72740A00526564426F6F743E200000002A2A3B
-S31AFE011F1E204572726F723A20496C6C6567616C20636F6D6D613E
-S31AFE011F336E643A2025730A00006F6E00006F666600496E766120
-S31AFE011F486C6964206361636865206D6F64653A2025730A00630E
-S31AFE011F5D6163686573203F0A00000025730A202020257320251E
-S31AFE011F72730A0000000062617365206164647265737300000037
-S31AFE011F87006C656E677468000044756D702077686174205B6C6D
-S31AFE011F9C6F636174696F6E5D3F0A0000776169742074696D6514
-S31AFE011FB16F7574000000007374617274696E6720616464726532
-S31AFE011FC673730000000041626F757420746F20737461727420AF
-S31AFE011FDB657865637574696F6E206174202570202D2061626FCF
-S31AFE011FF072742077697468205E432077697468696E20256420D8
-S31AFE0120057365636F6E64730A0000006574683000000000717571
-S31AFE01201A6963635F657468000000515549434320457468657250
-S31AFE01202F6E65743A204E6F206672656520786D69742062756638
-S31AFE012044666572730A000000000000005B2D765D205B2D725DF6
-S31AFE012059205B2D62203C6D656D5F616464723E5D203C66696C9C
-S31AFE01206E655F6E616D653E0000004C6F616420612066696C65F4
-S31AFE012083006C6F616400000000454C4620696D61676573206EA8
-S31AFE0120986F7420737570706F727465640A000000496E76616C41
-S31AFE0120AD696420532D7265636F7264206174206F666673657491
-S31AFE0120C22025702C20696E7075743A2025630A000000426164E0
-S31AFE0120D720532D7265636F726420636F756E74206174206F669D
-S31AFE0120EC667365742025700A0000000041646472657373206F14
-S31AFE0121016666736574203D2025700A00000000417474656D7025
-S31AFE0121167420746F206C6F616420532D7265636F726420646174
-S31AFE01212B746120746F20616464726573733A202570205B6E6F75
-S31AFE0121407420696E2052414D5D0A00002A2A2A205761726E6914
-S31AFE0121556E672120436865636B73756D206661696C75726520FF
-S31AFE01216A2D20416464723A20256C782C202530326C58203C3EFF
-S31AFE01217F202530326C580A0000456E74727920706F696E743A3B
-S31AFE0121942025702C20616464726573732072616E67653A20259E
-S31AFE0121A9702D25700A0000496E76616C696420532D7265636FD0
-S31AFE0121BE7264206174206F6666736574203078256C782C207404
-S31AFE0121D37970653A2025780A0000000000FFFF3050FFFF2EB445
-S31AFE0121E8FFFF2EB4FFFF2EB4FFFF3038FFFF3038FFFF3038FFEC
-S31AFE0121FDFF3000FFFF3000FFFF3000256308000A0000007573BB
-S31AFE0122126167653A206C6F6164203C66696C655F6E616D653E51
-S31AFE012227205B2D725D205B2D765D205B2D68203C686F73743E43
-S31AFE01223C5D205B2D6D207B54465450207C205A4D4F44454D7D38
-S31AFE0122515D205B2D62203C626173655F616464726573733E5D35
-S31AFE0122660A00766572626F7365006C6F6164207261772064616F
-S31AFE01227B74610000006C6F6164206164647265737300000000CE
-S31AFE012290646F776E6C6F6164206D6F6465202854465450206F02
-S31AFE0122A572205A4D4F44454D290000686F7374206E616D6520F9
-S31AFE0122BA284950206164647265737329000066696C65206E618B
-S31AFE0122CF6D65000000496E76616C696420495020616464726583
-S31AFE0122E473733A2025730A007A6D6F64656D00007466747000B4
-S31AFE0122F900000054465450206D6F646520726571756972657338
-S31AFE01230E206120776F726B696E67206E6574776F726B0A0000DF
-S31AFE01232300496E76616C696420276D6F6465273A2025730A00CA
-S31AFE01233846696C65206E616D65206D697373696E670A000043E3
-S31AFE01234D616E2774206C6F616420272573273A2025730A00004A
-S31AFE01236200004572726F722072656164696E6720686561646546
-S31AFE012377722076696120544654503A2025730A0000536F72727A
-S31AFE01238C792C207A6D6F64656D20646F776E6C6F6164206E6F71
-S31AFE0123A1742079657420617661696C61626C650A0000005261BE
-S31AFE0123B677206C6F61642072657175697265732061206D656D66
-S31AFE0123CB6F727920616464726573730A005261772066696C65A4
-S31AFE0123E0206C6F616465642025702D25700A0000454C460055AD
-S31AFE0123F56E7265636F676E697A656420696D6167652074797096
-S31AFE01240A653A20256C780A000000000000007B636D64737D0047
-S31AFE01241F004D616E61676520464C41534820696D616765730036
-S31AFE012434666973005B2D6C5D000000004D616E61676520636FC0
-S31AFE0124496E66696775726174696F6E206B65707420696E2046A2
-S31AFE01245E4C415348206D656D6F727900000066636F6E666967A7
-S31AFE012473005B2D665D00000000496E697469616C697A6520468C
-S31AFE0124884C41534820496D6167652053797374656D205B464960
-S31AFE01249D535D00696E69740000000000000000446973706C6164
-S31AFE0124B27920636F6E74656E7473206F6620464C41534820491D
-S31AFE0124C76D6167652053797374656D205B4649535D0000000002
-S31AFE0124DC6C69737400000000446973706C617920667265652072
-S31AFE0124F15B617661696C61626C655D206C6F636174696F6E738C
-S31AFE0125062077697468696E20464C41534820496D616765205304
-S31AFE01251B797374656D205B4649535D0000667265650000000018
-S31AFE0125302D66203C666C6173685F616464723E202D6C203C6CDB
-S31AFE012545656E6774683E00457261736520464C41534820636FB8
-S31AFE01255A6E74656E74730000000065726173650000006E616D7F
-S31AFE01256F6500000000446973706C617920616E20696D61676505
-S31AFE0125842066726F6D20464C41534820496D6167652053797379
-S31AFE01259974656D205B4649535D000064656C65746500004C6FFA
-S31AFE0125AE616420696D6167652066726F6D20464C415348204960
-S31AFE0125C36D6167652053797374656D205B4649535D20696E749A
-S31AFE0125D86F2052414D0000006C6F6164000000002D62203C6D82
-S31AFE0125ED656D5F626173653E202D6C203C696D6167655F6C6582
-S31AFE0126026E6774683E205B2D73203C646174615F6C656E677445
-S31AFE012617683E5D205B2D66203C666C6173685F616464723E5D99
-S31AFE01262C205B2D65203C656E7472795F706F696E743E5D205B5A
-S31AFE0126412D72203C72616D5F616464723E5D203C6E616D653E74
-S31AFE012656000043726561746520616E20696D61676500637265CA
-S31AFE01266B61746500002A2A2A20696E76616C696420276669730D
-S31AFE0126802720636F6D6D616E643A2025730A00006669732000BC
-S31AFE01269500000066756C6C20696E697469616C697A6174696FDE
-S31AFE0126AA6E2C2065726173657320616C6C206F6620666C6173C5
-S31AFE0126BF680000000041626F757420746F20696E697469616C91
-S31AFE0126D4697A65205B666F726D61745D20464C41534820696DBF
-S31AFE0126E96167652073797374656D002A2A2041626F72746564B0
-S31AFE0126FE0A002A2A2A20496E697469616C697A6520464C4153C2
-S31AFE0127134820496D6167652053797374656D0A000020202069E9
-S31AFE0127286E697469616C697A6174696F6E206661696C65642073
-S31AFE01273D25703A202578282573290A00000000202020205761CB
-S31AFE012752726E696E673A2064657669636520636F6E74656E746A
-S31AFE01276773206E6F74206572617365642C20736F6D6520626CF2
-S31AFE01277C6F636B73206D6179206E6F7420626520757361626C9D
-S31AFE012791650A00526564426F6F7400526564426F6F745B626143
-S31AFE0127A6636B75705D00526564426F6F7420636F6E66696700C4
-S31AFE0127BB00464953206469726563746F72790000004572726F95
-S31AFE0127D0722077726974696E6720696D61676520646573637205
-S31AFE0127E56970746F72732061742025703A202578282573290AA5
-S31AFE0127FA00004E616D652020202020202020202020202020463E
-S31AFE01280F4C41534820616464722020204D656D20616464722072
-S31AFE0128242020204C656E67746820202020456E74727920706F47
-S31AFE012839696E740A000000252D313673202030782530386C58CB
-S31AFE01284E20202030782530386C58202030782530366C582020A0
-S31AFE01286330782530386C580A00202030782530386C58202E2EA3
-S31AFE0128782030782530386C580A0000006D656D6F7279206261A7
-S31AFE01288D736520616464726573730072616D20626173652061D7
-S31AFE0128A264647265737300000000656E74727920706F696E741B
-S31AFE0128B7206164647265737300464C415348206D656D6F7279DA
-S31AFE0128CC20626173652061646472657373000000696D6167652E
-S31AFE0128E1206C656E677468205B696E20464C4153485D00696D28
-S31AFE0128F66167652073697A65205B61637475616C206461746111
-S31AFE01290B5D0000000066696C65206E616D65000000696E766146
-S31AFE0129206C696420617267756D656E7473000000726571756948
-S31AFE01293572656420706172616D65746572206D697373696E6752
-S31AFE01294A0000496E76616C696420464C41534820696D616765FB
-S31AFE01295F2073697A652F6C656E67746820636F6D62696E617465
-S31AFE012974696F6E00496E76616C696420464C4153482061646465
-S31AFE012989726573733A20257020282573290A0020202076616CD2
-S31AFE01299E69642072616E67652069732025702D25700A000000A8
-S31AFE0129B3002A2A205741524E494E473A2052414D20616464728B
-S31AFE0129C86573733A202570206D617920626520696E76616C69CA
-S31AFE0129DD640A004E616D6520697320746F6F206C6F6E672C2067
-S31AFE0129F26D757374206265206C657373207468616E20256420B0
-S31AFE012A0763686172730A00000043616E2774206C6F6361746555
-S31AFE012A1C20256C64206279746573206672656520696E20464CD9
-S31AFE012A314153480A000000496D61676520666F756E642C2062D8
-S31AFE012A46757420464C415348206164647265737320696E636F30
-S31AFE012A5B72726563740A000000496D61676520666F756E642CEC
-S31AFE012A7020627574204C454E47544820697320696E636F727256
-S31AFE012A856563740A000000416E20696D616765206E616D6564FA
-S31AFE012A9A202725732720657869737473000043616E277420701F
-S31AFE012AAF726F6772616D207468697320726567696F6E202D209C
-S31AFE012AC4636F6E7461696E7320636F646520696E207573652159
-S31AFE012AD90A000043616E277420657261736520726567696F6E58
-S31AFE012AEE2061742025703A202578282573290A00000043616E28
-S31AFE012B0327742070726F6772616D20726567696F6E206174204C
-S31AFE012B1825703A202578282573290A004572726F7220657261C2
-S31AFE012B2D73696E672061742025703A202578282573290A000049
-S31AFE012B4200004572726F722070726F6772616D6D696E6720612B
-S31AFE012B57742025703A202578282573290A000000006C656E67AB
-S31AFE012B6C746800006D697373696E6720617267756D656E7400F6
-S31AFE012B81000000696D616765206E616D65000044656C65746523
-S31AFE012B9620696D61676520272573270000004E6F20696D616781
-S31AFE012BAB65202725732720666F756E640A000000004E6F74200E
-S31AFE012BC061206C6F616461626C6520696D6167650A00000046D3
-S31AFE012BD54C4153483A2064726976657220696E697420666169B4
-S31AFE012BEA6C6564212C207374617475733A2025780A00464C41B7
-S31AFE012BFF53483A202570202D2025702C20256420626C6F636B30
-S31AFE012C1473206F662025702062797465732065612E0A000074B0
-S31AFE012C296F6F2066657720617267756D656E7473000000756E78
-S31AFE012C3E7265636F676E697A656420636F6D6D616E6400000053
-S31AFE012C530052756E2073637269707420617420626F6F740000B4
-S31AFE012C68626F6F745F73637269707400426F6F74207363726945
-S31AFE012C7D707400626F6F745F7363726970745F646174610000B8
-S31AFE012C920000426F6F74207363726970742074696D656F7574B8
-S31AFE012CA700626F6F745F7363726970745F74696D656F75740005
-S31AFE012CBC25733A2000000000257320007472756500000000662E
-S31AFE012CD1616C73650000002564200030782530325800003A00DA
-S31AFE012CE60000200000003F3F00000A0000002E2E2025730A000E
-S31AFE012CFB00456E746572207363726970742C207465726D696E31
-S31AFE012D10617465207769746820656D707479206C696E650A0072
-S31AFE012D250000003E3E200000000000FFFF0628FFFF064CFFFF7E
-S31AFE012D3A06C8FFFF06D4FFFF0660FFFF067CFFFF07DCFFFF070F
-S31AFE012D4FF0FFFF0964FFFF08B4FFFF080CFFFF0850FFFF04A843
-S31AFE012D64FFFF04A8FFFF04B8FFFF04C0FFFF04A8FFFF04B06C67
-S31AFE012D7969737420636F6E66696775726174696F6E206F6E6CEF
-S31AFE012D8E79002A2A20696E76616C696420656E7472790A0000FB
-S31AFE012DA30055706461746520526564426F6F74206E6F6E2D76D6
-S31AFE012DB86F6C6174696C6520636F6E66696775726174696F6E7F
-S31AFE012DCD0000004572726F722077726974696E6720636F6E66F8
-S31AFE012DE2696720646174612061742025703A20257828257329C3
-S31AFE012DF70A0000000000000000FFFF0260FFFF02C0FFFF027820
-S31AFE012E0CFFFF027CFFFF0290FFFF02B052657175657374206681
-S31AFE012E216F7220636F6E6669672076616C7565202725732720BD
-S31AFE012E362D2077726F6E6720747970650A0043616E27742066E9
-S31AFE012E4B696E6420636F6E6669672076616C7565202725732759
-S31AFE012E600A00000000000000FFFF0050FFFF0050FFFF00B4FF01
-S31AFE012E75FF0070FFFF0050FFFF005C464C41534820636F6E66F8
-S31AFE012E8A696775726174696F6E20636865636B73756D206572F2
-S31AFE012E9F726F72206F7220696E76616C6964206B65790A00004B
-S31AFE012EB400000000FFFF3178FFFF3178FFFF3178FFFF3178FF69
-S31AFE012EC9FF3178FFFF3178FFFF3178FFFF3178FFFF3178FFFFAD
-S31AFE012EDE3178FFFF3178FFFF3178FFFF3178FFFF3178FFFF3166
-S31AFE012EF378FFFF3178FFFF3198FFFF31B8FFFF31D8FFFF31F8CA
-S31AFE012F08FFFF3218FFFF327CFFFF327CFFFF327CFFFF327CFFB8
-S31AFE012F1DFF3238FFFF3258FFFF3258FFFF3258FFFF3258FFFF13
-S31AFE012F323258FFFF3258FFFF3258FFFF3258FFFF3258FFFF32AB
-S31AFE012F4758FFFF3258FFFF3258FFFF3258FFFF3258FFFF325870
-S31AFE012F5CFFFF3258FFFF3258FFFF3258FFFF3258FFFF3258FFB4
-S31AFE012F71FF3258FFFF3258FFFF3258FFFF3258FFFF3258FFFF9F
-S31AFE012F863258FFFF3258FFFF3258FFFF3258FFFF3258FFFF3257
-S31AFE012F9B58FFFF3258FFFF3238FFFF3238FFFF3238FFFF32389C
-S31AFE012FB0FFFF3238FFFF3238FFFF3238FFFF3238FFFF3238FF00
-S31AFE012FC5FF3238FFFF3238FFFF3238FFFF3238FFFF3238FFFFEB
-S31AFE012FDA3238FFFF3238FFFF31B0FFFF31B0FFFF31D4FFFF311B
-S31AFE012FEFF8FFFF31F8FFFF3238FFFF3238FFFF3238FFFF323809
-S31AFE013004FFFF321CFFFF3238FFFF3238FFFF3238FFFF3238FFC7
-S31AFE013019FF3238FFFF3238FFFF3238FFFF3238FFFF3238FFFF96
-S31AFE01302E3238FFFF3238FFFF3238FFFF3238FFFF3238FFFF324E
-S31AFE01304338FFFF3238FFFF3238FFFF3238FFFF3238FFFF323833
-S31AFE013058FFFF3238FFFF3238FFFF3238FFFF3238FFFF3238FF57
-S31AFE01306DFF3238FFFF3238FFFF3238FFFF3238FFFF3238FFFF42
-S31AFE0130823238FFFF3238FFFF316CFFFF316CFFFF316CFFFF3162
-S31AFE0130976CFFFF316CFFFF316CFFFF316CFFFF316CFFFF316CAC
-S31AFE0130ACFFFF316CFFFF316CFFFF316CFFFF316CFFFF316CFF04
-S31AFE0130C1FF316CFFFF316CFFFF318CFFFF31ACFFFF31CCFFFF2F
-S31AFE0130D631ECFFFF320CFFFF3270FFFF3270FFFF3270FFFF3277
-S31AFE0130EB70FFFF322CFFFF324CFFFF324CFFFF324CFFFF324C0F
-S31AFE013100FFFF324CFFFF324CFFFF324CFFFF324CFFFF324CFF4A
-S31AFE013115FF324CFFFF324CFFFF324CFFFF324CFFFF324CFFFF35
-S31AFE01312A324CFFFF324CFFFF324CFFFF324CFFFF324CFFFF32ED
-S31AFE01313F4CFFFF324CFFFF324CFFFF324CFFFF324CFFFF324CBE
-S31AFE013154FFFF324CFFFF324CFFFF324CFFFF324CFFFF324CFFF6
-S31AFE013169FF324CFFFF324C3031323334353637383961626364BC
-S31AFE01317E65660000000000000000503031004F4B000065436F0A
-S31AFE0131937320474442207374756273205B7769746820526564FF
-S31AFE0131A8426F6F745D202D206275696C74204F637420323020A7
-S31AFE0131BD32303030202F2031313A31343A3530000000004530B2
-S31AFE0131D23100453033004530320042303100FFFF4858FFFF50D4
-S31AFE0131E7E4FFFF4920FFFF4FA4FFFF4DF4FFFF50E4FFFF50E4EF
-S31AFE0131FCFFFF50E4FFFF4AACFFFF4F74FFFF50E4FFFF50E4FF6F
-S31AFE013211FF50E4FFFF50E4FFFF4BA8FFFF50E4FFFF50E4FFFFEB
-S31AFE0132264AACFFFF4904FFFF50E4FFFF4DF4FFFF4F8CFFFF50B5
-S31AFE01323BE4FFFF50E4FFFF50E4FFFF4BA4FFFF50E4FFFF50E4E0
-S31AFE013250FFFF50E4FFFF50E4FFFF50E4FFFF50E4FFFF50E4FF6B
-S31AFE013265FF50E4FFFF50E4FFFF5070FFFF4DF4FFFF48C0FFFFE9
-S31AFE01327A50E4FFFF50E4FFFF4910FFFF50E4FFFF50E4FFFF50CB
-S31AFE01328FE4FFFF4F54FFFF50E4FFFF4AC0FFFF50E4FFFF50E402
-S31AFE0132A4FFFF50E4FFFF48F8FFFF4F6CFFFF4DF4FFFF50E4FF77
-S31AFE0132B9FF50E4FFFF50E4FFFF50E4FFFF50E4FFFF50E4FFFF02
-S31AFE0132CE489C30313233343536373839616263646566000000A0
-S31AFE0132E30030313233343536373839414243444546000000002F
-S31AFE0132F8FFFF7038FFFF7038FFFF7038FFFF7038FFFF7038FF7F
-S31AFE01330DFF7038FFFF7038FFFF7038FFFF7038FFFF7038FFFF69
-S31AFE0133227038FFFF7038FFFF7038FFFF7038FFFF7038FFFF70E3
-S31AFE01333738FFFF6F78FFFF6F78FFFF6FACFFFF6FE0FFFF6FE0C7
-S31AFE01334CFFFF7038FFFF7038FFFF7038FFFF7038FFFF7014FF4E
-S31AFE013361FF7038FFFF7038FFFF7038FFFF7038FFFF7038FFFF15
-S31AFE0133767038FFFF7038FFFF7038FFFF7038FFFF7038FFFF708F
-S31AFE01338B38FFFF7038FFFF7038FFFF7038FFFF7038FFFF7038B2
-S31AFE0133A0FFFF7038FFFF7038FFFF7038FFFF7038FFFF7038FFD6
-S31AFE0133B5FF7038FFFF7038FFFF7038FFFF7038FFFF7038FFFFC1
-S31AFE0133CA7038FFFF7038FFFF7038FFFF7038FFFF7038FFFF703B
-S31AFE0133DF38FFFF6FECFFFF6FECFFFF6FECFFFF6FECFFFF6FECDF
-S31AFE0133F4FFFF6FECFFFF6FECFFFF6FECFFFF6FECFFFF6FECFF03
-S31AFE013409FF6FECFFFF6FECFFFF6FECFFFF6FECFFFF6FECFFFFED
-S31AFE01341E6FECFFFF7014FFFF7038FFFF705CFFFF7080FFFF70EB
-S31AFE013433A4FFFF7110FFFF7110FFFF7110FFFF7110FFFF70C8A9
-S31AFE013448FFFF70E8FFFF70E8FFFF70E8FFFF70E8FFFF70E8FFBD
-S31AFE01345DFF70E8FFFF70E8FFFF70E8FFFF70E8FFFF70E8FFFFA8
-S31AFE01347270E8FFFF70E8FFFF70E8FFFF70E8FFFF70E8FFFF7022
-S31AFE013487E8FFFF70E8FFFF70E8FFFF70E8FFFF70E8FFFF70E895
-S31AFE01349CFFFF70E8FFFF70E8FFFF70E8FFFF70E8FFFF70E8FF69
-S31AFE0134B1FF70E8FFFF70E8FFFF70E8FFFF70E8FFFF70E8FFFF54
-S31AFE0134C670E8FFFF7068FFFF7068FFFF7068FFFF7068FFFF70CE
-S31AFE0134DB68FFFF7068FFFF7068FFFF7068FFFF7068FFFF706841
-S31AFE0134F0FFFF7068FFFF7068FFFF7068FFFF7068FFFF7068FF95
-S31AFE013505FF7068FFFF7090FFFF70B0FFFF70D0FFFF70F0FFFF1F
-S31AFE01351A7110FFFF7178FFFF7178FFFF7178FFFF7178FFFF710B
-S31AFE01352F30FFFF7150FFFF7150FFFF7150FFFF7150FFFF715097
-S31AFE013544FFFF7150FFFF7150FFFF7150FFFF7150FFFF7150FFB3
-S31AFE013559FF7150FFFF7150FFFF7150FFFF7150FFFF7150FFFF9E
-S31AFE01356E7150FFFF7150FFFF7150FFFF7150FFFF7150FFFF7117
-S31AFE01358350FFFF7150FFFF7150FFFF7150FFFF7150FFFF715023
-S31AFE013598FFFF7150FFFF7150FFFF7150FFFF7150FFFF7150FF5F
-S31AFE0135ADFF7150FFFF70D0FFFF70D0FFFF70D0FFFF70D0FFFF4E
-S31AFE0135C270D0FFFF70D0FFFF70D0FFFF70D0FFFF70D0FFFF7049
-S31AFE0135D7D0FFFF70D0FFFF70D0FFFF70D0FFFF70D0FFFF70D0D4
-S31AFE0135ECFFFF70D0FFFF70F8FFFF7118FFFF7138FFFF7158FF2D
-S31AFE013601FF7178FFFF71C0FFFF71C0FFFF71C0FFFF71C0FFFF0D
-S31AFE01361671C0FFFF7198FFFF7198FFFF7198FFFF7198FFFF71DE
-S31AFE01362B98FFFF7198FFFF7198FFFF7198FFFF7198FFFF7198CA
-S31AFE013640FFFF7198FFFF7198FFFF7198FFFF7198FFFF7198FF4E
-S31AFE013655FF7198FFFF7198FFFF7198FFFF7198FFFF7198FFFF39
-S31AFE01366A7198FFFF7198FFFF7198FFFF7198FFFF7198FFFF71B2
-S31AFE01367F98FFFF7198FFFF7198FFFF7198FFFF7198FFFF719876
-S31AFE013694FFFF7198FFFF711CFFFF7160FFFF711CFFFF7160FF62
-S31AFE0136A9FF711CFFFF7160FFFF711CFFFF7160FFFF711CFFFFC9
-S31AFE0136BE7160FFFF711CFFFF7160FFFF711CFFFF7160FFFF71FE
-S31AFE0136D31CFFFF7160FFFF7160FFFF7160FFFF7160FFFF7160B6
-S31AFE0136E8FFFF7160FFFF7160FFFF7160FFFF7160FFFF7160FFBE
-S31AFE0136FDFF7160FFFF7160FFFF7160FFFF7160FFFF7160FFFFA9
-S31AFE0137127160FFFF7160FFFF7160FFFF7160FFFF7160FFFF7121
-S31AFE01372760FFFF7160FFFF7160FFFF7160FFFF7160FFFF71601D
-S31AFE01373CFFFF7160FFFF7160FFFF7160FFFF7160FFFF7160FF69
-S31AFE013751FF7160FFFF7160FFFF7160FFFF7160FFFF7160FFFF54
-S31AFE0137667160FFFF7160FFFF7160FFFF7160FFFF7160FFFF71CD
-S31AFE01377B60FFFF7160FFFF7178FFFF7178FFFF7178FFFF717869
-S31AFE013790FFFF7178FFFF7178FFFF7178FFFF7178FFFF7178FF9D
-S31AFE0137A5FF7178FFFF7178FFFF7178FFFF7178FFFF7178FFFF88
-S31AFE0137BA7178FFFF7178FFFF70B8FFFF70B8FFFF70ECFFFF7110
-S31AFE0137CF20FFFF7120FFFF7178FFFF7178FFFF7178FFFF717895
-S31AFE0137E4FFFF7154FFFF7178FFFF7178FFFF7178FFFF7178FF6D
-S31AFE0137F9FF7178FFFF7178FFFF7178FFFF7178FFFF7178FFFF34
-S31AFE01380E7178FFFF7178FFFF7178FFFF7178FFFF7178FFFF71AC
-S31AFE01382378FFFF7178FFFF7178FFFF7178FFFF7178FFFF717890
-S31AFE013838FFFF7178FFFF7178FFFF7178FFFF7178FFFF7178FFF4
-S31AFE01384DFF7178FFFF7178FFFF7178FFFF7178FFFF7178FFFFDF
-S31AFE0138627178FFFF7178303132333435363738390000303132DC
-S31AFE013877333435363738396162636465660000000030313233A2
-S31AFE01388C3435363738394142434445460000000000000000FF47
-S31AFE0138A1FF7B60FFFF7D10FFFF7D10FFFF7D10FFFF7D10FFFF09
-S31AFE0138B67D10FFFF7D10FFFF7D10FFFF7D10FFFF7D10FFFF7DC4
-S31AFE0138CB10FFFF7CA4FFFF7B60FFFF7D10FFFF7D10FFFF7D103B
-S31AFE0138E0FFFF7D10FFFF7D10FFFF7D10FFFF7D10FFFF7D10FF18
-S31AFE0138F5FF7D10FFFF7D10FFFF7D10FFFF7B40FFFF7D10FFFFD5
-S31AFE01390A7D10FFFF7C38FFFF7D10FFFF7D10FFFF7D10FFFF7D48
-S31AFE01391F10FFFF7B60000000005E430A003078253038583A2013
-S31AFE0139340000000025303258000000002020000020000000201A
-S31AFE0139497C0000256300007C0A0000202D2061726520796F75B8
-S31AFE01395E20737572652028792F6E293F2000556E62616C616EC9
-S31AFE01397363656420737472696E67210A00416D626967756F75F3
-S31AFE0139887320636F6D6D616E6420272573272C2063686F69635B
-S31AFE01399D6573206172653A20257300202573000A000000557364
-S31AFE0139B26167653A0A002020257325732025730A00002A2A20E4
-S31AFE0139C74572726F723A20257320616C72656164792073706580
-S31AFE0139DC6369666965640A002A2A204572726F723A20696E763E
-S31AFE0139F1616C6964206E756D626572202725732720666F7220EC
-S31AFE013A0625730A0000002A2A204572726F723A20696E76616C12
-S31AFE013A1B696420666C616720272563270A000000002A2A204551
-S31AFE013A3072726F723A206E6F2064656661756C742F6E6F6E2DD4
-S31AFE013A45666C616720617267756D656E747320737570706F720E
-S31AFE013A5A7465640A00004E45544153434949000000004F4354D5
-S31AFE013A6F4554000000556E6B6E6F776E206572726F720000006A
-S31AFE013A8466696C65206E6F7420666F756E6400006163636573DC
-S31AFE013A99732076696F6C6174696F6E000000006469736B20667A
-S31AFE013AAE756C6C206F7220616C6C6F636174696F6E206578630A
-S31AFE013AC3656564656400000000696C6C6567616C2054465450BA
-S31AFE013AD8206F7065726174696F6E0000756E6B6E6F776E20743F
-S31AFE013AED72616E736665722049440066696C6520616C7265615C
-S31AFE013B02647920657869737473006E6F207375636820757365EF
-S31AFE013B1772000000006F7065726174696F6E2074696D656420FE
-S31AFE013B2C6F757400736F6D6520736F7274206F66206E657477B8
-S31AFE013B416F726B206572726F720000696E76616C6964207061FC
-S31AFE013B5672616D6574657200000070726F746F636F6C207669F4
-S31AFE013B6B6F6C6174696F6E000066696C65206973206C617267E8
-S31AFE013B806572207468616E206275666665720000FFFF94F4FF6A
-S31AFE013B95FF9500FFFF950CFFFF9518FFFF9524FFFF9530FFFFC0
-S31AFE013BAA953CFFFF9548FFFF9554FFFF9560FFFF956CFFFF95E9
-S31AFE013BBF7847444220636F6E6E656374696F6E20706F72740072
-S31AFE013BD46764625F706F7274000000004E6574776F726B206418
-S31AFE013BE96562756720617420626F6F742074696D6500006E65B4
-S31AFE013BFE745F646562756700000055736520424F4F545020667C
-S31AFE013C136F72206E6574776F726B20636F6E666967757261743A
-S31AFE013C28696F6E00626F6F74700000004C6F63616C2049502054
-S31AFE013C3D6164647265737300000000626F6F74705F6D795F6956
-S31AFE013C52700044656661756C7420736572766572204950206132
-S31AFE013C67646472657373000000626F6F74705F736572766572A4
-S31AFE013C7C5F69700025732E25640A00006E65745F696F5F7772D7
-S31AFE013C91697465000000006E65745F696F5F726561640000005E
-S31AFE013CA60000FFFF99A4FFFF99A4FFFF99A4FFFF99A4FFFF9981
-S31AFE013CBBA4FFFF99A4FFFF99A4FFFF99A4FFFF99A4FFFF99A424
-S31AFE013CD0FFFF99A4FFFF99A4FFFF99A4FFFF99A4FFFF99A4FFB4
-S31AFE013CE5FF99A4FFFF99D0FFFF99F0FFFF9A10FFFF9A30FFFF2D
-S31AFE013CFA9A50FFFF9C74FFFF9C74FFFF9C74FFFF9C74FFFF9AF6
-S31AFE013D0F70FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A9062
-S31AFE013D24FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFBE
-S31AFE013D39FF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFFA9
-S31AFE013D4E9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9AF9
-S31AFE013D6390FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90EE
-S31AFE013D78FFFF9A90FFFF9A90FFFF9A90FFFF9A90FFFF9A90FF6A
-S31AFE013D8DFF9A90FFFF9A28FFFF9A28FFFF9A28FFFF9A28FFFFF5
-S31AFE013DA29A28FFFF9A28FFFF9A28FFFF9A28FFFF9A28FFFF9AAD
-S31AFE013DB728FFFF9A28FFFF9A28FFFF9A28FFFF9A28FFFF9A280A
-S31AFE013DCCFFFF9A28FFFF9A54FFFF9A78FFFF9A9CFFFF9AC0FF96
-S31AFE013DE1FF9AE4FFFF9B8CFFFF9B8CFFFF9B8CFFFF9B8CFFFFB9
-S31AFE013DF69B08FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFFF9B73
-S31AFE013E0B28FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFFF9B28B0
-S31AFE013E20FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFC4
-S31AFE013E35FF9B28FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFFFAF
-S31AFE013E4A9B28FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFFF9BFE
-S31AFE013E5F28FFFF9B28FFFF9B28FFFF9B28FFFF9B28FFFF9B285C
-S31AFE013E74FFFF9B284E6F206E6574776F726B20696E74657266E4
-S31AFE013E896163657320666F756E640A0000000043616E27742070
-S31AFE013E9E67657420424F4F545020696E666F202D206E6574772F
-S31AFE013EB36F726B2064697361626C6564210A00000049503A2033
-S31AFE013EC8257300002C2044656661756C74207365727665723A46
-S31AFE013EDD2025730A0000000000000025642E25642E25642E25BF
-S31AFE013EF2640045746865726E65742073656E643A0A00457468E4
-S31AFE013F0765726E657420726563763A0A006574685F6472765F23
-S31AFE013F1C6473722073686F756C64206E6F742062652063616CEB
-S31AFE013F316C65643A20766563746F722025642C206461746120A5
-S31AFE013F4625780A000000000000002E2E2E20457261736520669A
-S31AFE013F5B726F6D2025702D25703A2000002E0000000A000000F5
-S31AFE013F702E2E2E2050726F6772616D2066726F6D2025702D25DA
-S31AFE013F85702061742025703A2000004E6F206572726F72202D5A
-S31AFE013F9A206F7065726174696F6E20636F6D706C6574650000A3
-S31AFE013FAF00496E76616C696420464C4153482061646472657310
-S31AFE013FC4730000004572726F7220747279696E6720746F206521
-S31AFE013FD9726173650000004572726F7220747279696E672074C8
-S31AFE013FEE6F206C6F636B2F756E6C6F636B004572726F72207428
-S31AFE0140037279696E6720746F2070726F6772616D0047656E65E0
-S31AFE014018726963206572726F720000004465766963652F7265B0
-S31AFE01402D67696F6E2069732077726974652D70726F7465637457
-S31AFE014042656400000000464C415348207375622D73797374655E
-S31AFE0140576D206E6F7420696E697469616C697A656400000000BB
-S31AFE01406C556E6B6E6F776E206572726F7200000000000000FF01
-S31AFE014081FFAC04FFFFAC10FFFFAC1CFFFFAC28FFFFAC34FFFF48
-S31AFE014096AC40FFFFAC4CFFFFAC58457272203D2025780A0000DF
-S31AFE0140AB0000000000FFFFB184FFFFB184FFFFB17CFFFFB114A7
-S31AFE0140C0FFFFB17CFFFFB11CFFFFB154FFFFB15CFFFFB16CFFC8
-S31AFE0140D5FFB16CFFFFB164FFFFB174FFFFB154FFFFB18CFFFF43
-S31AFE0140EAB16CFFFFB174FFFFB174FFFFB17CFFFFB184FFFFB14C
-S31AFE0140FF8CFFFFB18CFFFFB18CFFFFB18CFFFFB18CFFFFB18CF4
-S31AFE014114FFFFB18CFFFFB174FFFFB174FFFFB174FFFFB174FFCB
-S31AFE014129FFB75CFFFFB75CFFFFB75CFFFFB75CFFFFB75CFFFF28
-S31AFE01413EB75CFFFFB75CFFFFB75CFFFFB75CFFFFB75CFFFFB75B
-S31AFE0141535CFFFFB75CFFFFB75CFFFFB75CFFFFB75CFFFFB75CA1
-S31AFE014168FFFFB77CFFFFB79CFFFFB7BCFFFFB7DCFFFFB7FCFF09
-S31AFE01417DFFB858FFFFB858FFFFB858FFFFB858FFFFB81CFFFF1F
-S31AFE014192B83CFFFFB83CFFFFB83CFFFFB83CFFFFB83CFFFFB8A1
-S31AFE0141A73CFFFFB83CFFFFB83CFFFFB83CFFFFB83CFFFFB83C08
-S31AFE0141BCFFFFB83CFFFFB83CFFFFB83CFFFFB83CFFFFB83CFF30
-S31AFE0141D1FFB83CFFFFB83CFFFFB83CFFFFB83CFFFFB83CFFFF1B
-S31AFE0141E6B83CFFFFB83CFFFFB83CFFFFB83CFFFFB83CFFFFB84D
-S31AFE0141FB3CFFFFB83CFFFFB83CFFFFB83CFFFFB83CFFFFB83CB4
-S31AFE014210FFFFB7ACFFFFB7ACFFFFB7ACFFFFB7ACFFFFB7ACFFB0
-S31AFE014225FFB7ACFFFFB7ACFFFFB7ACFFFFB7ACFFFFB7ACFFFF9B
-S31AFE01423AB7ACFFFFB7ACFFFFB7ACFFFFB7ACFFFFB7ACFFFFB7CE
-S31AFE01424FACFFFFB7CCFFFFB7F0FFFFB814FFFFB838FFFFB85CB9
-S31AFE014264FFFFB8F4FFFFB8F4FFFFB8F4FFFFB8F4FFFFB880FF63
-S31AFE014279FFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFF7E
-S31AFE01428EB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8B0
-S31AFE0142A3A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0B3
-S31AFE0142B8FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FF3F
-S31AFE0142CDFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFF2A
-S31AFE0142E2B8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB8A0FFFFB85C
-S31AFE0142F7A025733A2043616E27742066696E642061646472658D
-S31AFE01430C7373206F66207365727665720A0000005F5F756470F4
-S31AFE0143215F73656E64746F000000007564705F72656376667266
-S31AFE0143366F6D202D2064726F70706564207061636B6574206F0F
-S31AFE01434B662025642062797465730A00004275665B25645D2F6B
-S31AFE01436025703A206275663A2025702C206C656E3A2025642F8B
-S31AFE01437525642C206E6578743A2025700A000046726565206C93
-S31AFE01438A697374203D2025700A005F5F656E65745F706F6C6C2D
-S31AFE01439F3A206E6F206D6F726520627566666572730A000000E3
-S31AFE0143B400000000FFFFCD90FFFFCDE8FFFFD064FFFFCE3CFFA8
-S31AFE0143C9FFCE3CFFFFCEE4FFFFCF24FFFFCFC0FFFFD004FFFFD3
-S307FE0143DED044C4
-S31AFE0143E0000000007C2F2D5C7C2D000000003324000079D0FE48
-S31AFE0143F5012010000000000000000000000000FE0058D8FE0051
-S31AFE01440A58F0FE0058C8FE0058B0FE005740FE0055F4FE005CF6
-S31AFE01441FECFE0054B4FE0054AC000036E40000000008003E280B
-S31AFE01443479B80000FE005DFCFE00AF98FE00AF98FE00AF98FE19
-S31AFE01444900AF98FE00AF98FE00AF98FE00AF98FE00AF98FE0000
-S31AFE01445EAF98FE00AF98FE00AF98FE00AF98FE00AF98FE00AF3C
-S31AFE01447398FE00AF98FE00AF98FE00AF98FE00AF98FE00AF983E
-S31AFE014488FE00AF98FE00AF98FE00AF98FE00AF98FE00AF98FEC3
-S31AFE01449D00AF98FE00AF98FE00AF98FE00AF98FE00AF98FE00AC
-S31AFE0144B2AF98FE00AF98FE00AF98FE00AF98FE00AF98FE00AFE8
-S31AFE0144C798FE00AF98FE00AF98FE00AF98FE00AF98FE00AF98EA
-S31AFE0144DCFE00AF98FE00AF98FE00AF98FE00AF98FE00AF98FE6F
-S31AFE0144F100AF98FE00AF98FE00AF98FE00AF98FE00AF98FE0058
-S31AFE014506AF98FE00AF98FE00AF98FE00AF98FE00AF98FE00AF93
-S31AFE01451B98FE00AF98FE00AF9800000000000000000000000064
-S31AFE01453000000000000000000000000000000000000000000071
-S31AFE0145450000000000000000000000000000000000000000005C
-S31AFE01455A00000000000000000000000000000000000000000047
-S31AFE01456F00000000000000000000000000000000000000000032
-S31AFE0145840000000000000000000000000000000000000000001D
-S31AFE01459900000000000000000000000000000000000000000008
-S31AFE0145AE000000000000000000000000000000000000000000F3
-S31AFE0145C3000000000000000000000000000000000000000000DE
-S31AFE0145D8000000000000000000000000000000000000000000C9
-S31AFE0145ED000000000000000000000000000000000000000000B4
-S31AFE0146020000000000000000000000000000000000000000009E
-S31AFE01461700000000000000000000000000000000000000000089
-S31AFE01462C00000000000000000000000000000000000000000074
-S31AFE0146410000000000000000000000000000000000000000005F
-S31AFE0146560000000000000000000000000000000000000000004A
-S31AFE01466B00000000000000000000000000000000000000000035
-S31AFE01468000000000000000000000000000000000000000000020
-S31AFE0146950000000000000000000000000000000000000000000B
-S31AFE0146AA000000000000000000000000000000000000000000F6
-S31AFE0146BF000000000000000000000000000000000000000000E1
-S31AFE0146D4000000000000000000000000000000000000000000CC
-S31AFE0146E900000000000000000000000000000000000000FE00B9
-S31AFE0146FE0000FE0000000040000000000000FF000000FF000066
-S31AFE014713000010000001000000FA100000FA1000000000000463
-S31AFE014728010000000000000000000000008000000000000000F6
-S31AFE01473D00000000000000000000000000000000000000000062
-S31AFE0147520000FE00834CFE0083A8000000000000000000000057
-S31AFE01476700FFFFFFFF0000000000000000FE0093F400000000B7
-S31AFE01477C0000000000011CE40000000000000000000000000022
-S31AFE01479100000000000000FFFFFFFEFFFFFFFE00000000000018
-S31AFE0147A61E1400001E14000001F40000000000000000000000A0
-S31AFE0147BB000000000000000000FE00E1C0FE00E668FE00E454C3
-S31AFE0147D0000000000000000000000000000003E80000000000E4
-S31AFE0147E5000000000000000000000000000000000000000000BA
-S31AFE0147FA000000000000000000000000000000000000000000A5
-S31AFE01480F000000000000000000FE012668FE012658FE0125E879
-S31AFE014824FE003DA4FE0125A4FE012574FE01256CFE0039C8FEAE
-S31AFE014839012564FE01254CFE012530FE003BCCFE012528FE01C7
-S31AFE01484E24E4FE0124A8FE004488FE0124A0FE01247CFE01242E
-S31AFE01486374FE004658FE0124DCFE0124ACFE0124A8FE004598B7
-S31AFE014878FE0125E0FE0125ACFE01256CFE003880FE011E1CFED5
-S31AFE01488D011E04FE011DF8FE002840FE011DF0FE011DC8FE0185
-S31AFE0148A21DACFE002A30FE012434FE012420FE012418FE0036D2
-S31AFE0148B7ECFE01246CFE012440FE012438FE002F48FE011DA875
-S31AFE0148CCFE011D8CFE011D74FE002B28FE011D6CFE011D58FE4F
-S31AFE0148E1011D50FE0029BCFE012084FE012078FE012050FE00C5
-S31AFE0148F64A14FE012C68FE012C54000000000000000100000037
-S31AFE01490B0100000000FE012C80FE012C74FE012C6800000001B3
-S31AFE0149200000000400000000FE012CA8FE012C94FE012C680054
-S31AFE0149350000010000000200000000FE013C2CFE013C080000BB
-S31AFE01494A0000000000010000000100000000FE013C48FE013C93
-S31AFE01495F34FE013C2C000000000000000500000000FE013C70F3
-S31AFE014974FE013C54FE013C2C000000000000000500000000FE30
-S31AFE014989013BD4FE013BC0000000000000000100000002000007
-S31AFE01499E0000FE013BFCFE013BE00000000000000001000000AE
-S31AFE0149B30100000000FE002CC000000000FE00DD2800000000FC
-S31AFE0149C8FE012018FE0059080000330C000000004E8000210011
-S310FE0149DD0000000000000000000000CA
+S31AFE002651630D407C0803A63D2000003D60000093893B5893EB6C
+S31AFE0026663B784E8000213C000040901B3B5C939A3B74480006D1
+S31AFE00267B6D3C60FE013C80FE013CA0FE01386329A4388429D487
+S31AFE00269038A529E0480094313C60FE013C80FE013CA0FE013CD1
+S31AFE0026A5C0FE0138C62A20386329EC38842A0438A52A14480018
+S31AFE0026BA940D3C60FE0138632A2448009401809A3B7480BB3BC6
+S31AFE0026CF5C3C60FE0138632A48480093ED3D2000003D6000002C
+S31AFE0026E438093B383BAB3B287C1D00003D20000093893B6C41E6
+S31AFE0026F98200207C1C0378813D00003BBD00087D2803A64E8039
+S31AFE00270E00217C1DE0004082FFEC3F600000835B3B802C1A00ED
+S31AFE002723004182006C3D20000083A93B603C8010621FBD03E855
+S31AFE00273860844DD37C9D20967FA0FE707C8436707C8020501CFA
+S31AFE00274DA403E83C60FE0138632A547CA5E850480093693D2036
+S31AFE00276200003B80000093893B807FA5EB7838610008388001EB
+S31AFE00277700480099BD2C03FFFE4082000C939B3B804800000878
+S31AFE00278C935B3B807FFDFB787F3CCB787FDBF3782C1D0000414F
+S31AFE0027A18200143C60FE0138632A98480093193BA00000386129
+S31AFE0027B600083880010038A000FA480099752C03000040800032
+S31AFE0027CB1C3D20000080093B842C0000004182FFC44800B71D66
+S31AFE0027E04BFFFFBC40820020393C3200800900347F63DB787CE4
+S31AFE0027F50803A64E800021480077C94BFFFF9C386100084800D5
+S31AFE00280A93792C0300004081004C3FA000003F40000138610075
+S31AFE00281F08389D3B7038BA208848009E717C631B794182001CD5
+S31AFE0028348003000C807D3B70389A20887C0803A64E8000214876
+S31AFE0028490000143C60FE0138632AA4388100084800926D3BA07B
+S31AFE00285E00014BFFFF3C9421FFF07C0802A693E1000C900100FA
+S31AFE002873142C0300027C9F237840820144807F00043C80FE018C
+S31AFE00288838842AC4480093852C030000408200447D6000A67DF8
+S31AFE00289D605B7839200000512004207C0001243C0002004C00D6
+S31AFE0028B2012C7C108BA64C00012C3D4002007C0004AC7D588B9F
+S31AFE0028C7A67C0000A6516004207C000124480000F8807F000477
+S31AFE0028DC3C80FE0138842AC84800932D2C030000408200C07D44
+S31AFE0028F16000A67D605B7839200000512004207C000124392030
+S31AFE0029060000380000807C0903A6612010003D400E007C000436
+S31AFE00291BAC7D398BA67D588BA67C198BA67D588BA639290010CC
+S31AFE0029304200FFE03C0004004C00012C7C108BA64C00012C3D41
+S31AFE0029454004007C0004AC7D588BA639200000380000807C096D
+S31AFE00295A03A6612010003D400E007C0004AC7D398BA67D588B2C
+S31AFE00296FA67C198BA67D588BA6392900104200FFE03C000C0002
+S31AFE0029844C00012C7C108BA64C00012C3D400C007C0004AC7D59
+S31AFE002999588BA67C0000A6516004207C000124480000243C60FC
+S31AFE0029AEFE01809F000438632ACC4800910D480000103C60FE85
+S31AFE0029C30138632AE4480090FD800100147C0803A683E1000C4A
+S31AFE0029D8382100104E8000209421FFE87C0802A693A1000C93F4
+S31AFE0029EDC1001093E100149001001C3D6000003D20000039296F
+S31AFE002A023A683BEB39F87C1F48004182002C7D3D4B783FC0FE76
+S31AFE002A1701809F000480BF000080DF0008387E2AF04800909D97
+S31AFE002A2C3BFF00107C1FE8004082FFE48001001C7C0803A683D2
+S31AFE002A41A1000C83C1001083E10014382100184E8000209421EF
+S31AFE002A56FFA87C0802A69381004893A1004C93C1005093E100A0
+S31AFE002A6B549001005C7C7D1B787C9C23783D20FE0139292B00E9
+S31AFE002A80386100083880006238A0000138C0000038E100383927
+S31AFE002A9501003C48009F293D20FE0139292B1038610020388071
+S31AFE002AAA006C38A0000138C0000038E100403901004448009F18
+S31AFE002ABF053D40FE017FA3EB787F84E378394A2A2038A00001F4
+S31AFE002AD438C1000838E00002390000003920000048009EF92C31
+S31AFE002AE9030000418200408001003C2C000000408200143C6073
+S31AFE002AFEFE0138632B1848008FC148000024800100442C0000ED
+S31AFE002B13004082000C3800002090010040806100388081004058
+S31AFE002B2848009A758001005C7C0803A68381004883A1004C83F4
+S31AFE002B3DC1005083E10054382100584E8000209421FFB87C0827
+S31AFE002B5202A69381003893A1003C93C1004093E1004490010029
+S31AFE002B674C3D20000080093B7C7C7D1B787C9C23783D20FE01D1
+S31AFE002B7C9001002839292B30386100083880007738A0000138E9
+S31AFE002B91C0000038E100203901002448009E253D40FE017FA32B
+S31AFE002BA6EB787F84E378394A2B4038A0000138C1000838E00075
+S31AFE002BBB01390100283920000048009E192C030000418200F85C
+S31AFE002BD0800100242C000000418200343C60FE018081002880E0
+S31AFE002BE5A1002038632B5448008ED980A10020386100301CA582
+S31AFE002BFA03E838800008480095352C03FFFE418200BC81410098
+S31AFE002C0F287D6000A67D605B7839200000512004207C000124C2
+S31AFE002C2439200000380000807C0903A6612010003D600E007CA0
+S31AFE002C390004AC7D398BA67D788BA67C198BA67D788BA6392977
+S31AFE002C4E00104200FFE03C0004004C00012C7C108BA64C000179
+S31AFE002C632C3D6004007C0004AC7D788BA6392000003800008028
+S31AFE002C787C0903A6612010003D600E007C0004AC7D398BA67D49
+S31AFE002C8D788BA67C198BA67D788BA6392900104200FFE03C00CA
+S31AFE002CA20C004C00012C7C108BA64C00012C3D600C007C000435
+S31AFE002CB7AC7D788BA67D4803A64E8000218001004C7C0803A6DB
+S31AFE002CCC8381003883A1003C83C1004083E10044382100484E38
+S31AFE002CE18000204E8000209421FFE07C0802A693A1001493C1F0
+S31AFE002CF6001893E1001C90010024380000003D2000003FC000D4
+S31AFE002D0B003BA93B8090093B80901E3B6C48000A992C0300004D
+S31AFE002D20418200EC3D20000080893B943D600000800B3B903D86
+S31AFE002D352000003BE97C747C8422147C8400507FE3FB7838A01E
+S31AFE002D4A0400480085757FE3FB78388003FC480004F9801F03B7
+S31AFE002D5FFC7C030000408200303D20000081697C743C000BADC3
+S31AFE002D746000FACE7C0B000040820018813F03F83C00DEAD60DB
+S31AFE002D8900DEAD7C090000418200283C60FE0138633A38480046
+S31AFE002D9E8D293C60000038637C743880000038A00400480085DE
+S31AFE002DB3E9480000583C60FE01386338103881000838A0000166
+S31AFE002DC848000061800100082C000000418200303C60FE0138CE
+S31AFE002DDD6338287FA4EB7838A00004480000413C60FE013C80D8
+S31AFE002DF200003863386438843B6038A0000248000029380000B7
+S31AFE002E0701901E3B6C800100247C0803A683A1001483C10018F6
+S31AFE002E1C83E1001C382100204E8000209421FFD87C0802A6936B
+S31AFE002E3121000C93410010936100149381001893A1001C93C19F
+S31AFE002E46002093E100249001002C3D2000003D6000003B493B45
+S31AFE002E5B287C7B1B787C9D23787CB92B783BCB3A6848000945E2
+S31AFE002E702C0300003B800004418200CC7C1ED000418200B43DAE
+S31AFE002E8520000039297C74807E00007FFC4A147F64DB7848006D
+S31AFE002E9A8D112C0300004082007C807E00107C03C800408200FD
+S31AFE002EAF5C3803FFFF280000054181008C3D60FE01396B3A2060
+S31AFE002EC45400103A7D4B002E3D20FE0139293A207D4A4A147DA7
+S31AFE002ED94903A64E800420801F0000901D00004800005CA01F4D
+S31AFE002EEE0004813F0000B01D0004913D00004800004893FD0048
+S31AFE002F0300480000403C60FE01386339D07F64DB7848008BB134
+S31AFE002F184800002C807E00103BDE0018480002DD7C1ED0007FDD
+S31AFE002F2D9C1A144082FF543C60FE01386339FC7F64DB784800C3
+S31AFE002F428B858001002C7C0803A68321000C8341001083610024
+S31AFE002F57148381001883A1001C83C1002083E100243821002884
+S31AFE002F6C4E8000209421FBB87C0802A6930104289321042C9393
+S31AFE002F81410430936104349381043893A1043C93C1044093E1C6
+S31AFE002F9604449001044C3D2000003D6000003B093A683B2B3B78
+S31AFE002FAB287C7C1B787C9B2378480007FD2C0300003B400000B2
+S31AFE002FC07F1FC3783BC00004418202083C80000038847C7438B3
+S31AFE002FD561000838A00400480082E53BA104083D6000003D200D
+S31AFE002FEAFE01934B3B80392939307FA3EB783880006C38A000EA
+S31AFE002FFF0038C0000238E1042039000000480099B53D40FE0137
+S31AFE0030147F83E3787F64DB787FA6EB78394A2FB038A000013815
+S31AFE003029E000013900000039200000480099A92C03000041829F
+S31AFE00303E01947C1FC800418200A480A104207FE3FB787FC4F3CA
+S31AFE003053784800026538030001280000054181FFE03D60FE0197
+S31AFE003068396B39B85400103A7D4B002E3D20FE01392939B87DFA
+S31AFE00307D4A4A147D4903A64E8004203C60000038637C74388151
+S31AFE003092000838A0040048008229480001343B400001807F0056
+S31AFE0030A7103BFF0018480001557FDE1A144BFFFF8C7FE9C2780E
+S31AFE0030BC3129FFFF7D294910381FFFE87C0048787FE948387DC5
+S31AFE0030D13F03784BFFFF6C3C60FE0138633948480089E54BFFC0
+S31AFE0030E6FF5C2C1A0000418200E43C000BAD3D6000006000FA9E
+S31AFE0030FBCE3D20DEAD3B8B7C746129DEAD900B7C74913C03F8E8
+S31AFE0031107F83E378388003FC480001393D2000003FE000008014
+S31AFE0031251F3B9481693B90907C03FC7C0002143C60FE017FC077
+S31AFE00313A58503863395C480094812C03000041820088809F3B73
+S31AFE00314F943BA104247FC3F3787FA5EB784800BA617C7F1B79A9
+S31AFE0031644182002C83A104247FE3FB784800BD697C661B783C23
+S31AFE00317960FE013863321C7FA4EB787FE5FB784800893D480042
+S31AFE00318E00447FC3F3787F84E3787FA6EB7838A004004800BB72
+S31AFE0031A38D7C7F1B794182002883A104247FE3FB784800BD25C1
+S31AFE0031B87C661B783C60FE01386339887FA4EB787FE5FB7848ED
+S31AFE0031CD0088F98001044C7C0803A6830104288321042C834122
+S31AFE0031E20430836104348381043883A1043C83C1044083E104F0
+S31AFE0031F744382104484E8000203803FFFF280000054D81002094
+S31AFE00320C3D60FE01396B39185400103A7D4B002E3D20FE0139EF
+S31AFE0032212939187D4A4A147D4903A64E800420386000044E802A
+S31AFE0032360020386000084E800020386000004E800020386002B1
+S31AFE00324B004E800020388400035484F0BE7C8023782C00000074
+S31AFE00326038C0000038E000003884FFFF40810044816300007C26
+S31AFE0032758A23787D68383038E7000168E900102C0A00007D2A70
+S31AFE00328AFE707D404A787C0050507D6B43787C00FE707CC65AF9
+S31AFE00329F78386300047CE700383884FFFF4181FFC47CC333783B
+S31AFE0032B44E8000209421FF707C0802A693010070932100749304
+S31AFE0032C94100789361007C9381008093A1008493C1008893E127
+S31AFE0032DE008C900100947C7B1B78807B00087C9F23782C0300B4
+S31AFE0032F3007CB82B78418200383881006038A000014BFFFB2594
+S31AFE003308801B000C2C00000041820014800100602C00000041B4
+S31AFE00331D82019848000010800100602C000000408201883D206F
+S31AFE003332000039297C743C60FE01809B00047FBF4A1438633807
+S31AFE003347784800877D813B00103809FFFF280000054181014866
+S31AFE00335C3D60FE01396B38E85400103A7D4B002E3D20FE0139CF
+S31AFE0033712938E87D4A4A147D4903A64E800420801D00002C00AB
+S31AFE0033860000418200103D20FE0138893884480000303D20FEAF
+S31AFE00339B013889388C480000243C60FE01809D00003863389408
+S31AFE0033B048008715480000EC7FA3EB784800AF457C641B783C7C
+S31AFE0033C560FE0138633880480086F9480000D07FBEEB783BE0A3
+S31AFE0033DA00003F80FE013FA0FE017C9EF8AE387C38984800862C
+S31AFE0033EFD9281F00044181000C387D38A0480086C93BFF000174
+S31AFE003404281F00054081FFDC3C60FE017FDDF378386338A448A6
+S31AFE0034190086AD480000843C60FE01386338A8480000883C6019
+S31AFE00342EFE01386338AC48008691881D00007FBEEB782C000037
+S31AFE003443007FBFEB78418200583F20FE013B4000003B80000A16
+S31AFE003458881E00002C00000A418200187FEBFB788C0B00012C03
+S31AFE00346D00000A4082FFF87D7F5B787FC4F3789B5F000038795B
+S31AFE00348238B0480086413BDF00019B9F0000881E00007FDFF3EE
+S31AFE003497782C0000004082FFBC2C180000418200183C60FE0141
+S31AFE0034AC386338AC48008615386000024800022C801B00102CBE
+S31AFE0034C100000441820054386100083880005038A0000048000E
+S31AFE0034D68C612C0300003860FFFF4180020438610008480086F5
+S31AFE0034EB992C0300004182FFC4880100082C00002E4082000CC1
+S31AFE00350038600000480001E02C00005E4082000C3860000348B6
+S31AFE0035150001D0813B00103809FFFF28000005418101BC3D6078
+S31AFE00352AFE01396B39005400103A7D4B002E3D20FE0139293921
+S31AFE00353F007D4A4A147D4903A64E80042083FD000038610008CC
+S31AFE0035547FA4EB784800994D4800003083FD0000386100087F92
+S31AFE003569A4EB7838A0000038C00000480097C14800001483FDF6
+S31AFE00357E0000386100087FA4EB784800AC112C03000041820115
+S31AFE0035933C801D00007FE002787C09FE707D2302787C634850E9
+S31AFE0035A87C63FE707C6018F8546307FE540007BC7C630378485C
+S31AFE0035BD000128801D0000A17D00049001005839210058B16958
+S31AFE0035D20004380100087D3A4B78900100683BC000003F60FE90
+S31AFE0035E7013BE100643B810068806100687FE4FB787F85E378A8
+S31AFE0035FC38DB38A0480097352C030000418200B4881F00037CEB
+S31AFE0036111DF1AE3BDE0001281E00054081FFD4480000C03C6047
+S31AFE003626FE017FBEEB78386338B84800849548000044880100EB
+S31AFE00363B083BE100082C000000418200287FC4F3787FEBFB78A8
+S31AFE003650880B0000980400008D2B0001388400012C0900004047
+S31AFE00366582FFEC7C9E23783800000A981E00003BDE00013800E0
+S31AFE00367A00003C60FE01981E0000386338E44800843D3861008D
+S31AFE00368F083880005038A0000048008A9D2C0300003860FFFF06
+S31AFE0036A44180004038610008480084D52C0300004082FF84480E
+S31AFE0036B9000028A01A000481210058B01D0004913D00003860E1
+S31AFE0036CE0004480000143C60FE01386338A8480083E938600021
+S31AFE0036E301800100947C0803A683010070832100748341007843
+S31AFE0036F88361007C8381008083A1008483C1008883E1008C3839
+S31AFE00370D2100904E8000209421FFF07C0802A693C1000893E164
+S31AFE003722000C900100147C7E1B782C1E00017C9F23784181008D
+S31AFE003737143C60FE01386337D0480013C94800005448000069B7
+S31AFE00374C2C030000418200483C6000003C80000080BF00043857
+S31AFE003761633988388439F8480090957C631B794182001C8003FC
+S31AFE003776000C7FC3F3787FE4FB787C0803A64E80002148000047
+S31AFE00378B103C60FE01386337E448001375800100147C0803A632
+S31AFE0037A083C1000883E1000C382100104E8000209421FFE07CED
+S31AFE0037B50802A6934100089361000C9381001093A1001493C1AF
+S31AFE0037CA001893E1001C900100243D200000800933002C000044
+S31AFE0037DF004082009C3FE00000807F3B5C3800000190093300B9
+S31AFE0037F43C63FFFF3C8000014800B2AD7C641B79418200183C30
+S31AFE00380960FE0138633778480082B538600000480000683F6097
+S31AFE00381E00003F40000038600000389B3B8C38BA3B904800B328
+S31AFE003833213FA000003F800000387D3B94389C3B984800B34156
+S31AFE003848809B3B8C80BA3B9080DC3B983C60FE0180FD3B943832
+S31AFE00385D6337A048008265813D3B94801F3B5C3D2900017C093A
+S31AFE00387200503D600000900B3B9C38600001800100247C080319
+S31AFE003887A6834100088361000C8381001083A1001483C100181E
+S31AFE00389C83E1001C382100204E8000209421FFA87C0802A69311
+S31AFE0038B181004893A1004C93C1005093E100549001005C380024
+S31AFE0038C600007C7D1B787C9C23783D20FE0190010040392936E5
+S31AFE0038DBDC9001003C386100083880006238A0000138C000009F
+S31AFE0038F038E100383901003C480090C93D20FE01392936F83833
+S31AFE0039056100203880006338A0000038C0000238E100403900A9
+S31AFE00391A0000480090A53D40FE017FA3EB787F84E378394A36FF
+S31AFE00392FA438A0000238C1000838E0000239010044392000010E
+S31AFE003944480090992C030000408200143C60FE013863343C4806
+S31AFE0039590011B1480000E080610044480011ED7C7D1B794082B1
+S31AFE00396E00183C60FE0180810044386336C44800814948000059
+S31AFE003983BC8001003C2C0000004082000C801D0014900100383E
+S31AFE0039983D20000080093B74806100387C0300404180001C804C
+S31AFE0039ADBD00183D20000081693B5C7C032A147C0058404180BC
+S31AFE0039C200143C60FE013863370C480080F94800006C809D00CD
+S31AFE0039D710480078E9801D00FC817D001C2C0000003D200000E2
+S31AFE0039EC91693B7C4182004C80610038809D00204800121180C1
+S31AFE003A019D00FC7C7C1B787C1C2000418200143C60FE013863C3
+S31AFE003A1637247F85E378480080A9800100402C000000418200BC
+S31AFE003A2B143C60FE01386337647F84E3784800808D8001005C0D
+S31AFE003A407C0803A68381004883A1004C83C1005083E100543800
+S31AFE003A552100584E8000209421FFD87C0802A693410010936161
+S31AFE003A6A00149381001893A1001C93C1002093E1002490010016
+S31AFE003A7F2C3D40FE01394A36A438A0000238C0000038E000003F
+S31AFE003A94390100083920000148008F412C030000408200143C24
+S31AFE003AA960FE013863343C48001059480001843D6000003D2022
+S31AFE003ABE000080A93B94800B3B903FA000007F650050807D3B56
+S31AFE003AD39C7F64DB78480077E983DD3B9C3BA000003BDE020033
+S31AFE003AE83BE000024800000C3BFF00013BDE01003F4000008000
+S31AFE003AFD1A3B945400C23E7C1F004040800040881E00002C00C6
+S31AFE003B1200FF4182FFDC806100087FC4F378480080892C0300E6
+S31AFE003B27004082FFC83C60FE0180810008386336B048008A897C
+S31AFE003B3C2C030000418200F83BA000012C1D0000408200183C4B
+S31AFE003B5160FE0180810008386336C448007F69480000D83B8152
+S31AFE003B66000C807E0010809E00187F85E3784800B0497C7F1B40
+S31AFE003B7B794182002883A1000C7FE3FB784800B3517C661B7807
+S31AFE003B903C60FE01386336447FA4EB787FE5FB7848007F257FA4
+S31AFE003BA5C3F378388000FF38A00100480077E9809A3B947F63D6
+S31AFE003BBADB787F85E3784800AFFD7C7F1B794182002C83A100AA
+S31AFE003BCF0C7FE3FB784800B3057C661B783C60FE0138633644D7
+S31AFE003BE47FA4EB787FE5FB7848007ED9480000483D200000805F
+S31AFE003BF9893B9C80BA3B947F63DB787F86E3784800B1257C7F9C
+S31AFE003C0E1B794182002883A1000C7FE3FB784800B2BD7C661B65
+S31AFE003C23783C60FE01386336647FA4EB787FE5FB7848007E918C
+S31AFE003C388001002C7C0803A6834100108361001483810018832E
+S31AFE003C4DA1001C83C1002083E10024382100284E800020942191
+S31AFE003C62FFA07C0802A69381005093A1005493C1005893E10072
+S31AFE003C775C90010064380000007C7D1B787C9C23783D20FE0110
+S31AFE003C8C90010044392933E09001003C38610008388000663811
+S31AFE003CA1A0000138C0000038E100383901003C48008D113D2067
+S31AFE003CB6FE0139293688386100203880006C38A0000138C00028
+S31AFE003CCB0038E100403901004448008CED3D40FE017FA3EB7847
+S31AFE003CE07F84E378394A2FB038A0000238C1000838E0000239DD
+S31AFE003CF50000003920000048008CE12C030000408200143C6007
+S31AFE003D0AFE013863343C48000DF9480001048001003C2C000012
+S31AFE003D1F0041820010800100442C000000408200143C60FE0156
+S31AFE003D343863369048000DD1480000DC806100384800ADC97C78
+S31AFE003D497C1B794082002080610038800100407C630214386305
+S31AFE003D5EFFFF4800ADAD7C7C1B794182004483A100387F83E3D8
+S31AFE003D73784800B1657C651B783C60FE01386334987FA4EB7865
+S31AFE003D8848007D3D3D2000003D6000003C60FE0180893B8C803B
+S31AFE003D9DAB3B90386334B848007D2148000070808100388001B8
+S31AFE003DB200407C8323787C8402143884FFFF4800B2FD2C030028
+S31AFE003DC700418200143C60FE01386335C848007CF1480000409C
+S31AFE003DDC806100388081004038A100484800ADD57C7C1B7941BC
+S31AFE003DF182002883A100487F83E3784800B0DD7C661B783C6060
+S31AFE003E06FE01386336447FA4EB787F85E37848007CB1800100B4
+S31AFE003E1B647C0803A68381005083A1005483C1005883E1005CD5
+S31AFE003E30382100604E8000209421FF187C0802A6934100D093A3
+S31AFE003E456100D4938100D893A100DC93C100E093E100E4900116
+S31AFE003E5A00EC380000007C7D1B787C9C23783D20FE01900100FF
+S31AFE003E6FC4392933A49001009C900100A4900100AC900100B459
+S31AFE003E84900100BC386100083880006238A0000138C000003814
+S31AFE003E99E100983901009C48008B213D20FE01392933B838618B
+S31AFE003EAE00203880007238A0000138C0000038E100A0390100ED
+S31AFE003EC3A448008AFD3D20FE01392933CC3861003838800065C8
+S31AFE003ED838A0000138C0000038E100A8390100AC48008AD93876
+S31AFE003EEDE100B03D20FE017CFE3B78392933E03861005038808C
+S31AFE003F02006638A0000138C00000390100B448008AB13D20FEA3
+S31AFE003F1701392933FC386100683880006C38A0000138C0000009
+S31AFE003F2C38E100B8390100BC48008A8D3D20FE01392934143818
+S31AFE003F416100803880007338A0000138C0000038E100C0390177
+S31AFE003F5600C448008A693D40FE017FA3EB787F84E378394A343D
+S31AFE003F6B3038A0000238C1000838E00006390100C839200001B8
+S31AFE003F8048008A5D2C030000408200143C60FE013863343C4806
+S31AFE003F95000B75480004B08001009C2C0000004182001C8001EE
+S31AFE003FAA00BC2C00000041820010800100C82C0000004082000C
+S31AFE003FBF143C60FE013863345048000B414800047C800100C47A
+S31AFE003FD4814100B82C00000040820008914100C03D20000080F5
+S31AFE003FE9093B94816100C07D2A02143929FFFF7D2903963F406A
+S31AFE003FFE00007D2901D67C095840912100B8408000143C60FE38
+S31AFE004013013863346C48007AAD4800042C800100B42C00000010
+S31AFE00402841820070806100B04800AADD7C7C1B794082002080FE
+S31AFE00403D6100B0800100C07C6302143863FFFF4800AAC17C7CDF
+S31AFE0040521B794182004483A100B07F83E3784800AE797C651B1E
+S31AFE004067783C60FE01386334987FA4EB7848007A513D200000D0
+S31AFE00407C3D6000003C60FE0180893B8C80AB3B90386334B8485E
+S31AFE004091007A35480003B43FE0000080810098801F3B747C04E2
+S31AFE0040A600404180001C800100C03D20000081693B5C7C040243
+S31AFE0040BB147C005840418000283C60FE01386334D4480079F9E3
+S31AFE0040D03D2000003C60FE01809F3B7480A93B5C386334B84882
+S31AFE0040E50079E1806100C848007A952803000F408100183C60B9
+S31AFE0040FAFE013863350038800010480079C14800034080010088
+S31AFE00410FB42C0000004082002C808100B87FC3F37848000351C7
+S31AFE0041242C030000408200183C60FE01808100B83863353048DD
+S31AFE00413900798D4800030C3F8000003D20000080BC3B94800960
+S31AFE00414E3B903FA000007F650050807D3B9C7F64DB78480071B7
+S31AFE00416361801C3B9483FD3B9C5409C23F3BA000003B8000002C
+S31AFE004178418200883FC0FE01881F00002C0000FF418200608070
+S31AFE00418D6100C87FE4FB7848007A152C0300004082004C800185
+S31AFE0041A200B42C00000041820014813F0010800100B07C0900C7
+S31AFE0041B7004082022C813F0018800100B87C0900004082022C79
+S31AFE0041CC808100C8387E35AC480083ED2C0300004182026C3B27
+S31AFE0041E18000014800001C801A3B943BBD00015400C23E7C1D91
+S31AFE0041F600403BFF01004180FF842C1C0000814100C080610046
+S31AFE00420BB04082004C3D20000080093B943D6000005400C23E36
+S31AFE0042207C1C004083EB3B9C3BA000004800001C3D200000804C
+S31AFE004235093B943BBD00015400C23E7C1D00403BFF0100408077
+S31AFE00424A0010881F00002C0000FF4082FFDC7C8352143884FFBC
+S31AFE00425FFF4800AE5D2C030000418200143C60FE01386335C8BB
+S31AFE00427448007851480001D038A100CC806100B0808100B87C9C
+S31AFE004289BE2B784800A9317C7C1B793BA000014182002C83A11E
+S31AFE00429E00CC7F83E3784800AC357C661B783C60FE017FA4EB97
+S31AFE0042B378386335FC7F85E378480078093BA000002C1D000062
+S31AFE0042C841820044806100B08081009880A100C07FC6F37848D3
+S31AFE0042DD00AA517C7C1B794182002883A100CC7F83E3784800C1
+S31AFE0042F2ABE97C661B783C60FE01386336207FA4EB787F85E3B1
+S31AFE00430778480077BD7FE3FB783880000038A00100480070810A
+S31AFE00431C808100C87FE3FB78480078B9800100A4812100B02CCE
+S31AFE004331000000913F001040820020800100B42C00000041828D
+S31AFE004346000C812100B04800001081210098480000088121007C
+S31AFE00435BA0800100AC913F00142C000000408200103D2000003D
+S31AFE00437080093B7C48000008800100A8901F001C800100B890E7
+S31AFE0043851F0018812100C0913F002080610098808100C0480014
+S31AFE00439A08753D200000907F00FC80893B947F63DB787FC5F3E1
+S31AFE0043AF784800A80D7C7C1B794182004C83A100CC7F83E37898
+S31AFE0043C44800AB157C661B783C60FE01386336447FA4EB787FAE
+S31AFE0043D985E378480076E9480000683C60FE0138633558480089
+S31AFE0043EE76D9480000583C60FE0138633584480076C948000009
+S31AFE004403483D20000080893B9C80BA3B947F63DB787FC6F3782D
+S31AFE0044184800A9157C7C1B794182002883A100CC7F83E3784879
+S31AFE00442D00AAAD7C661B783C60FE01386336647FA4EB787F8550
+S31AFE004442E37848007681800100EC7C0803A6834100D0836100B5
+S31AFE004457D4838100D883A100DC83C100E083E100E4382100E8EF
+S31AFE00446C4E8000203D20000080E93B943D600000814B3B8C3D47
+S31AFE0044812000007C073A1481093B907D4A02147D4953787C09E9
+S31AFE00449640404080007054E0F0BE7C0603785407103A800A004F
+S31AFE0044AB002C00FFFF4182004C7C095000418200147C095050EE
+S31AFE0044C07C0016707C002040408000587D4953787C0940404017
+S31AFE0044D580002054CB103A7D295A147C09404040800010800953
+S31AFE0044EA00002C00FFFF4082FFEC7D2A4B78480000087D4A3A27
+S31AFE0044FF147C0A40404180FFA47C095000418200207C09505049
+S31AFE0045147C0016707C0020404180001091230000386000014E44
+S31AFE004529800020386000004E8000209421FFE07C0802A693619F
+S31AFE00453E000C9381001093A1001493C1001893E1001C9001005F
+S31AFE004553243D20000080093B943D600000814B3B8C3D200000E9
+S31AFE00456883C93B907C0002147FEA02147C1FF0407FE4FB783F32
+S31AFE00457D600000408000883F80FE013FA00000801F00002C0015
+S31AFE004592FFFF4182005C7C04F80041820010387C338C7FE5FBD6
+S31AFE0045A7784800751D7C1FF0407FE4FB7840800034801F000075
+S31AFE0045BC2C00FFFF41820028801D3B945400F0BE5409103A7C40
+S31AFE0045D1844A147C04F04040800010800400002C00FFFF4082FF
+S31AFE0045E6FFEC7C9F237848000014801B3B945400F0BE540010EF
+S31AFE0045FB3A7FFF02147C1FF0404180FF887C04F8004182001477
+S31AFE0046103C60FE013863338C7FE5FB78480074A9800100247C3F
+S31AFE0046250803A68361000C8381001083A1001483C1001883E1CF
+S31AFE00463A001C382100204E8000209421FFC87C0802A693810028
+S31AFE00464F2893A1002C93C1003093E100349001003C7C7D1B7845
+S31AFE0046647C9C2378380000003D20FE0190010020392932F43885
+S31AFE0046796100083880006338A0000038C0000238E10020390060
+S31AFE00468E0000480083313D40FE017FA3EB787F84E378394A2F06
+S31AFE0046A3B038A0000238C1000838E000013900000039200000C8
+S31AFE0046B8480083252C030000418200B4810100203D2000003D17
+S31AFE0046CD60000081493B90800B3B942C0800007FA050503FE073
+S31AFE0046E20000418200103D20FE01388933484800000C3D20FEA5
+S31AFE0046F701388933543C60FE0138633308480073C13D20000017
+S31AFE00470C80093B943B8000005409C23F4182005C3FC0FE01887E
+S31AFE0047211D00002C0000FF418200348001002080BD00102C0026
+S31AFE00473600004182000C80DD00FC4800000880DD001480FD0004
+S31AFE00474B18811D001C387E33607FA4EB784800736D801F3B941E
+S31AFE0047603B9C00015400C23E7C1C00403BBD01004180FFB08053
+S31AFE00477501003C7C0803A68381002883A1002C83C1003083E16D
+S31AFE00478A0034382100384E8000209421FFB87C0802A693210017
+S31AFE00479F2C93410030936100349381003893A1003C93C1004059
+S31AFE0047B493E100449001004C7C7D1B787C9C23783BE000003DC0
+S31AFE0047C920FE013929319093E10020386100083880006638A06A
+S31AFE0047DE000038C0000238E1002039000000480081D53D40FE3D
+S31AFE0047F3017FA3EB787F84E378394A2FB038A0000238C100088C
+S31AFE00480838E000013900000039200000480081C92C03000041EA
+S31AFE00481D8202C03C60FE01386331BC48007D992C0300004082CC
+S31AFE00483200143C60FE01386331EC480072894800029C3C60FE43
+S31AFE00484701386331F848007279800100202C0000004182006C64
+S31AFE00485C3D20000080893B983D600000800B3B943D200000387E
+S31AFE00487184FFFC80693B8C7C8401D63BA100247C0002147C63B7
+S31AFE00488602147FA5EB784800A3317C7C1B797FBEEB7841820071
+S31AFE00489B3C83A100247F83E3784800A6357C661B783C60FE01F0
+S31AFE0048B03863321C7FA4EB787F85E37848007209480000143CC6
+S31AFE0048C560FE0138633244480071F93BC100243F400000839AFC
+S31AFE0048DA3B943C0000027F9C00003F20000083B93B9C4FFEEBF3
+S31AFE0048EF827C000026540007FE7C0000D07C0900F87F9C003817
+S31AFE0049045529039C7F9C4B787FA3EB783880000038A001004841
+S31AFE004919006A813D20FE013F6000003969328C801B3B8C814913
+S31AFE00492E328C810B0004939D0018915D0000911D0004901D008D
+S31AFE00494314901D00103BBD01007FA3EB783880000038A001007B
+S31AFE00495848006A413D60FE01801B3B8C810B3294392B32948059
+S31AFE00496DE9000C81690004814900087C00E214939D0018911D14
+S31AFE0049820000917D0004915D000890FD000C901D0014901D000D
+S31AFE004997103BBD01007FA3EB783880000038A00100480069F146
+S31AFE0049AC3D20FE01800932A4396932A4812B0008814B0004A19A
+S31AFE0049C10B000C913D0008901D0000915D0004B11D000C880BE4
+S31AFE0049D6000E3F800000981D000E817A3B94801C3B907D2B5A05
+S31AFE0049EB147C090050901D0014917D0018901D00103BBD01002D
+S31AFE004A007FA3EB783880000038A001004800698D801C3B908062
+S31AFE004A159A3B943D60FE01814B32B47F640050392B32B4A109AA
+S31AFE004A2A000C8009000481690008915D0000901D0004917D003B
+S31AFE004A3F08B11D000C909D0018937D0010937D00147F63DB78BE
+S31AFE004A547FC5F3784800A1653BFF00013BFF00017C7C1B793B0F
+S31AFE004A69FF00013BFF00014182002C83A100247F83E37848001D
+S31AFE004A7EA45D7C661B783C60FE013863321C7FA4EB787F85E3B8
+S31AFE004A9378480070314800004480993B9C7F63DB7857E5402E4E
+S31AFE004AA87FC6F3784800A2817C7C1B794182002883A100247F9C
+S31AFE004ABD83E3784800A4197C661B783C60FE01386332C47FA439
+S31AFE004AD2EB787F85E37848006FED8001004C7C0803A6832100C7
+S31AFE004AE72C83410030836100348381003883A1003C83C100405E
+S31AFE004AFC83E10044382100484E8000209421FFF87C0802A69002
+S31AFE004B1101000C7C641B783C60FE013863316848006FA53C6044
+S31AFE004B2600003C8000003CA0FE0138633988388439F838A53188
+S31AFE004B3B8848007E018001000C7C0803A6382100084E80002009
+S31AFE004B509421FFE87C0802A69381000893A1000C93C100109331
+S31AFE004B65E100149001001C3F8000003D20000080BC3B94808965
+S31AFE004B7A3B903FA000007C7F1B78807D3B9C7C852050480067F6
+S31AFE004B8F35801C3B9483BD3B9C5409C23F3B8000003FC000003E
+S31AFE004BA441820044881D00002C0000FF418200207FE3FB787FEA
+S31AFE004BB9A4EB7848006FED2C0300004082000C7FA3EB7848006E
+S31AFE004BCE0020801E3B943B9C00015400C23E7C1C00403BBD0144
+S31AFE004BE3004180FFC4386000008001001C7C0803A683810008C7
+S31AFE004BF883A1000C83C1001083E10014382100184E8000203811
+S31AFE004C0D8400035484F0BE7C8023782C00000039600000388469
+S31AFE004C22FFFF408100207C802378812300002C00000038630098
+S31AFE004C37047D6B4A783884FFFF4181FFE87D635B784E800020B2
+S31AFE004C4C9421FF207C0802A67D800026934100C8936100CC933D
+S31AFE004C618100D093A100D493C100D893E100DC900100E49181DE
+S31AFE004C7600C43BA000007C7B1B787C9A237893A1009893A1004B
+S31AFE004C8BB0386100083880000038A0000C480067013D20000115
+S31AFE004CA08149211C3B8100183800000C396000013D20FE017F67
+S31AFE004CB583E378B0010010B161000E91410008B3A1000C39298B
+S31AFE004CCA2D703880007638A0000038C0000238E1009039000052
+S31AFE004CDF0048007CE13D20FE0139292D783861003038800072C1
+S31AFE004CF438A0000038C0000238E100943900000048007CBD3D31
+S31AFE004D0920FE0139292D88386100483880006238A0000138C08F
+S31AFE004D1E000038E100983901009C48007C993D20FE0139292DAD
+S31AFE004D3398386100603880006D38A0000138C0000138E100A026
+S31AFE004D48390100A448007C753D20FE0139292DBC38610078384B
+S31AFE004D5D80006838A0000138C0000138E100A8390100AC480094
+S31AFE004D727C513D40FE017F86E3787F63DB787F44D378394A2D8C
+S31AFE004D87D438A0000138E00005390100B03920000148007C45FC
+S31AFE004D9C2C0300003B8000004182030C800100AC2C00000041A8
+S31AFE004DB182002C806100A838810008480093DD2C030000408248
+S31AFE004DC600183C60FE01808100A838632DE048006CF1480002E1
+S31AFE004DDBD8800100A42C000000418200E883A100A03BBD00012E
+S31AFE004DF07FA3EB7848006D8D7C651B783C80FE017FA3EB7838F7
+S31AFE004E05842DF848006EB52C0300004082006C812100A07D2440
+S31AFE004E1A4B78892900003809FFBF280000194181000C380900BB
+S31AFE004E2F205409063E7D204B782C0000794182002841810010E7
+S31AFE004E442C00007841820014480000282C00007A4182001848A1
+S31AFE004E5900001C3B8000014800006C3B800002480000643B8090
+S31AFE004E6E00034800005C3C60FE0148000048806100A03C80FE1E
+S31AFE004E830138842E1448006D892C030000408200283D20000063
+S31AFE004E9880093B843B8000002C000000408200283C60FE013815
+S31AFE004EAD632E1C48006C15480001FC3C60FE01808100A038635A
+S31AFE004EC22E0048006C01480001E82E1C00004092007480610052
+S31AFE004ED7B02C030000408200283C60FE0138632E4448006BDDC1
+S31AFE004EEC3C60FE013C80000038632E583884330C48006BC94876
+S31AFE004F010001B03BA100B43881000838A000017FA6EB784800EC
+S31AFE004F16800D7C7B1B7940800014806100B483A100B048008362
+S31AFE004F2BA5480000403C60FE01808100903863D0C8480001C1D7
+S31AFE004F40480000543BA100B4806100B07F84E3787FA5EB78486E
+S31AFE004F5500A6797C7B1B7940800028806100B483A100B0480000
+S31AFE004F6AAA017C651B783C60FE0138632E687FA4EB7848006B0A
+S31AFE004F7F49480001303C60FE01808100903863F7504800016D93
+S31AFE004F943D2000013BE922343B8000003B4100B84800000C7F6A
+S31AFE004FA97CD1AE3B9C0001281C0003418100184800016D7C7B4E
+S31AFE004FBE1B794080FFE8801F0110900100B42C1B0000418000A2
+S31AFE004FD3D44800010D800100942C000000418200548001009C26
+S31AFE004FE82C000000408200143C60FE0138632E8048006ACD4803
+S31AFE004FFD0000A8838100984800000C987C00003B9C00014800CF
+S31AFE00501201157C631B794080FFF03C60FE018081009838632E50
+S31AFE005027A47F85E37848006A99480000743C80FE0138842EBC05
+S31AFE00503C386100B938A0000348006C2D2C0300003B8100B8406A
+S31AFE0050518200143C60FE0038635124480006DD480000448801C6
+S31AFE00506600B82C00005340820028893C00013929FFD0280900E8
+S31AFE00507B09418100183C60FE008081009838635124480001C9E4
+S31AFE005090480000143C60FE01808100B838632EC048006A2540B7
+S31AFE0050A592000C7FA3EB7848008009800100E4818100C47C084F
+S31AFE0050BA03A6834100C8836100CC838100D083A100D483C100E8
+S31AFE0050CFD883E100DC7D808120382100E04E8000203D2000018D
+S31AFE0050E4392922348009010C3969000490090108916901044ED0
+S31AFE0050F98000203D600001392B22343940000038000100906BF9
+S31AFE00510E2234914901189009010C90890114914901084E8000BA
+S31AFE005123209421FFF07C0802A693C1000893E1000C9001001402
+S31AFE0051383D2000013BE9223483DF01082C1E00004080000C38CD
+S31AFE00514D60FFFF480000EC408200C4801F01142C00000041828E
+S31AFE0051620038817F01183D200000392933047C8958AE396B003E
+S31AFE005177013C60FE01917F011838632D6848006941801F011880
+S31AFE00518C280000064081000893DF01183D2000013BE922348030
+S31AFE0051A11F010C2C0000FF41810020801F01142C000000418219
+S31AFE0051B6FF983C60FE0138632D6C480069054BFFFF883D200096
+S31AFE0051CB0181292234381F00047C0303783880010038BF0110B4
+S31AFE0051E07D2803A6901F01044E8000212C030000907F010C90EA
+S31AFE0051F57F010841810020801F01142C0000004182FF483C60B1
+S31AFE00520AFE0138632D6C480068B54BFFFF383D400001394A224F
+S31AFE00521F34812A0108816A01043929FFFF912A0108886B000087
+S31AFE005234396B0001916A0104800100147C0803A683C10008832B
+S31AFE005249E1000C382100104E8000209421FF707C0802A69281A5
+S31AFE00525E006092A1006492C1006892E1006C93010070932100EE
+S31AFE00527374934100789361007C9381008093A1008493C10088CA
+S31AFE00528893E1008C900100947C7D1B787C9523783B6000003ADB
+S31AFE00529D8000013B2000003AC000003AE0FFFF480002602C052F
+S31AFE0052B20053418200183C60FE0138632C087F64DB7848006865
+S31AFE0052C701480002547FA803A63B7B00024E80002138A1005887
+S31AFE0052DC38000000547C063E7CBA2B78900100587FA3EB7838EE
+S31AFE0052F1800001480002697C7F1B79408000183C60FE013863D3
+S31AFE0053062C347F64DB78480067B94800020C381CFFD0280000EF
+S31AFE00531B093B7B0001418101AC3D60FE01396B2D405400103AFF
+S31AFE0053307D4B002E3D20FE0139292D407D4A4A147D4903A64E61
+S31AFE0053458004207FA3EB78389CFFD17F45D378480002092C14E0
+S31AFE00535A00007C7E1B78381BFFD17FD8F3787F60E21441820030
+S31AFE00536F2C2C1500004182001C7F3EA8503C60FE0138632C586A
+S31AFE0053847F24CB784800673D480000083B2000003A8000003D9C
+S31AFE00539920000081693B747FDECA147D39F0507C1748107C00AA
+S31AFE0053AE01107C0003B87D2900787C1E58407EE000387C174BDA
+S31AFE0053C378418000143D20000080093B5C7C1E00404081001854
+S31AFE0053D83C60FE0138632C707FC4F378480066E14800013438F8
+S31AFE0053ED1F002E7FFC00507FE9FB782C0900007F7BFA143BFF3D
+S31AFE005402FFFF408100307F5CD3787FA3EB78388000017F85E357
+S31AFE00541778480001457FE0FB782C000000987E00003BDE000148
+S31AFE00542C3BFFFFFF4181FFDC7FA3EB783880000138A000004834
+S31AFE00544100011D88A1005B7C6318F85466063E7C0628003B7B63
+S31AFE005456000190A10058418200183C60FE0138632CAC7F04C384
+S31AFE00546B7848006659480000AC7D39F0507C09B0107C000110ED
+S31AFE0054807C0003B87D2900787EC000387C164B78480000547FD8
+S31AFE005495A3EB78209C003B7F45D378480000BD7C7E1B783D2003
+S31AFE0054AA00003C60FE0193C93B7C38632CE87FC4F3787EE5BBC0
+S31AFE0054BF787EC6B37848006601480000543C60FE0138632D102F
+S31AFE0054D47F64DB787F85E378480065E94800003C7F7FDB787F40
+S31AFE0054E9BEEB78480000083BFF00017FC803A64E8000212C03F0
+S31AFE0054FE000A4082FFF07FDDF3787FFBFB787FA803A64E800088
+S31AFE005513217C651B794181FD98800100947C0803A682810060ED
+S31AFE00552882A1006482C1006882E1006C830100708321007483DA
+S31AFE00553D4100788361007C8381008083A1008483C1008883E1E0
+S31AFE005552008C382100904E8000209421FFE07C0802A693610029
+S31AFE0055670C9381001093A1001493C1001893E1001C9001002402
+S31AFE00557C7C9E23787FC0F3782C0000007C7B1B787CBC2B783BEB
+S31AFE005591A000003BDEFFFF408101787F6803A64E8000217F68AA
+S31AFE0055A603A6547F063E4E800021393FFFD0381FFFBF21290097
+S31AFE0055BB09392000007D29491420000005380000007C00011484
+S31AFE0055D07D270379546B063E3920000040820010381FFF9F2857
+S31AFE0055E500000541810008392000012C09000041820104392B23
+S31AFE0055FAFFD0380BFFBF7D2A4B787C0803785529063E54000643
+S31AFE00560F3E21290009392000007D294914200000053800000038
+S31AFE0056247C0001147D2703793920000040820010380BFF9F2888
+S31AFE00563900000541810008392000012C090000418200B0393F0F
+S31AFE00564EFFD05520063E2800000957BD402E4181000C7D234B4F
+S31AFE0056637848000030381FFF9F280000054181000C387FFFA9EF
+S31AFE0056784800001C381FFFBF393FFFC9200000057C0001107C32
+S31AFE00568D0003B87C0348385540063E280000094181000C7D49AC
+S31AFE0056A2537848000030380BFF9F280000054181000C392BFF6D
+S31AFE0056B7A94800001C5500063E392BFFC9200000057C00011056
+S31AFE0056CC7C0003B87C094838546020362C1C00007C034B787F76
+S31AFE0056E1BD1B784182001C801C00007C001A14901C0000480047
+S31AFE0056F6000C3860FFFF480000187FC0F3782C0000003BDEFFAB
+S31AFE00570BFF4181FE907FA3EB78800100247C0803A68361000CEF
+S31AFE0057208381001083A1001483C1001883E1001C382100204E81
+S31AFE0057358000209421FFF87C0802A69001000C3C60FE01386310
+S31AFE00574A2BEC480063798001000C7C0803A6382100084E800022
+S31AFE00575F203860001C4E8000209421FFE87C0802A693A1000C67
+S31AFE00577493C1001093E100149001001C7C7D1B78813D000483B2
+S31AFE005789C900044800002C73E00012418200107FA3EB787FE4A6
+S31AFE00579EFB784800004973E000084182000C7FA3EB78480001F6
+S31AFE0057B3A9B3FE0010A01E00107000001A541F043E2C1F00001B
+S31AFE0057C84082FFC88001001C7C0803A683A1000C83C10010836E
+S31AFE0057DDE10014382100184E8000209421FFE87C0802A6938183
+S31AFE0057F2000893A1000C93C1001093E100149001001C7C7D1BA9
+S31AFE0058077883DD000483FE0018A01F0000700090002C00100018
+S31AFE00581C408200683B9E0028813D0000801E0010816900247C52
+S31AFE00583100F850816B00085400F87AA13F00007C9C002E7FA314
+S31AFE005846EB7838A000007D6803A67129EFFFB13F00004E80003A
+S31AFE00585B21A01F0000700920004182000C83FE0010480000080B
+S31AFE0058703BFF0008A01F0000700090002C0010004182FFA493E9
+S31AFE005885FE00188001001C7C0803A68381000883A1000C83C1AA
+S31AFE00589A001083E10014382100184E8000209421FFE87C0802EC
+S31AFE0058AFA693A1000C93C1001093E100149001001C81230004B9
+S31AFE0058C48169000C83EB00047C188AA654000FFE2C00000041D1
+S31AFE0058D9820028812B0004A00B00022C000000408100187C002E
+S31AFE0058EE4BAC7C0004AC3400FFF0392900104181FFF02C050007
+S31AFE00590300408100387C9E23787CBD2B78807E00002C030000D4
+S31AFE0059184182001880BE00047FE4FB784800599D801E00047F24
+S31AFE00592DFF021437BDFFFF3BDE00084082FFD88001001C7C087F
+S31AFE00594203A683A1000C83C1001083E10014382100184E800068
+S31AFE005957209421FFE87C0802A693A1000C93C1001093E1001423
+S31AFE00596C9001001C7C7D1B7883DD000483FE001C4800004881D7
+S31AFE0059813D000093FE000C816900247FA3EB78800B0004A09FD2
+S31AFE00599600027C0803A64E800021A01F000060008000B01F006C
+S31AFE0059AB00A13F0000712020004182000C83FE0014480000089E
+S31AFE0059C03BFF0008A01F0000700090002C0010004182FFB0938C
+S31AFE0059D5FE001C8001001C7C0803A683A1000C83C1001083E1ED
+S31AFE0059EA0014382100184E8000209421FFD87C0802A6930100E5
+S31AFE0059FF089321000C93410010936100149381001893A1001C5F
+S31AFE005A1493C1002093E100249001002C83C300047C9823788334
+S31AFE005A29BE00087CBB2B78A01D00007CD93378700980007CFA98
+S31AFE005A3E3B78418200447FBFEB783F80FE01A01F0000700920DE
+S31AFE005A53004182000C83FE0010480000083BFF00087C1FE800C5
+S31AFE005A684082000C387C2BAC48006055A01F00007009800040D7
+S31AFE005A7D82FFD07FFDFB78A01D00007009200041820010801E09
+S31AFE005A9200107C0903784800000C381D0008813E0010901E00BD
+S31AFE005AA7087C09E8502C1B00005400F87A393E0028B33D000283
+S31AFE005ABC7F49012E83FD0004408100307F1EC3787F7CDB7880BF
+S31AFE005AD19E000080BE00047FE3FB78480057E5801E0004379C0E
+S31AFE005AE6FFFF3BDE00087FFF02144082FFE07C188AA654000F2C
+S31AFE005AFBFE2C00000041820028813D0004A01D00022C000000D0
+S31AFE005B10408100187C004BAC7C0004AC3400FFF039290010412E
+S31AFE005B2581FFF0A01D00006000DC00B01D00008001002C7C0800
+S31AFE005B3A03A6830100088321000C83410010836100148381009D
+S31AFE005B4F1883A1001C83C1002083E10024382100284E8000208A
+S31AFE005B648123000481690008A06B000054638BFE686300014E29
+S31AFE005B79800020688401003004FFFF7C6021104E8000208123B5
+S31AFE005B8E000481690004800B000060000030900B00004E800088
+S31AFE005BA3208123000481690004800B000054000732900B000080
+S31AFE005BB84E8000209421FFD87C0802A69321000C9341001093F7
+S31AFE005BCD6100149381001893A1001C93C1002093E10024900131
+S31AFE005BE2002C83230008839900047FDE9AA677DEFFFF3C800004
+S31AFE005BF700388433A03860000838A0000648000D2D7F788AA6DF
+S31AFE005C0C577B0FFE39200000380000807C0903A6612010003C94
+S31AFE005C21C00E007C0004AC7D398BA67CD88BA67C198BA67CD8EA
+S31AFE005C368BA6392900104200FFE03D2004007C0004AC7D388BC4
+S31AFE005C4BA63FA000003CC0FE003CE0FE013D20000038C65FD01C
+S31AFE005C6038E7EA7C391D3B8839297C583860001C388000007F6C
+S31AFE005C7525CB7848004811807D3B883BFE3C004800482D386083
+S31AFE005C8A001C48004C393860001C48004AE1801E0A003B5E0AA6
+S31AFE005C9F005400073293FC0000901E0A00935C00047FE3FB7850
+S31AFE005CB43880000038A000A4480056DD38C000047CC903A62F0F
+S31AFE005CC99B0000391E2C00395E2C203D2000003D60000038E0AF
+S31AFE005CDE000038009000915C001C39294CA0396B6460911C0079
+S31AFE005CF310911C0008911C0018915C0014915C000CB0EA000278
+S31AFE005D08912A0004B00A0000392905F0394A00084200FFECA456
+S31AFE005D1D0AFFF87D09437860002000B00A0000394000047D49AE
+S31AFE005D3203A6399F007238000000B009000291690004B00900BB
+S31AFE005D4700396B05F0392900084200FFEC7D284B78A408FFF808
+S31AFE005D5C3B60000160002000B0080000A13E09523BA0001061D4
+S31AFE005D71290003B13E0952A01E0950390005F05400043AB01EFE
+S31AFE005D860950A13E09543B80FFFF7129FFFDB13E0954A01E090D
+S31AFE005D9B623D40DEBB7000FFCFB01E0962A13E0960614A20E30A
+S31AFE005DB07129FFCFB13E0960A01E09643960000060000030B016
+S31AFE005DC51E0964A13E09523860888861290A00B13E0952A01EBC
+S31AFE005DDA09503880000F7000F5FFB01E0950813E0AEC38C00553
+S31AFE005DEFEE5529002E913E0AEC801E0AEC38E000406000003DB3
+S31AFE005E04901E0AEC813E0AEC38002C20552906B0913E0AEC931C
+S31AFE005E197E0030B01F000039202C00B13F00029BBF00049BBFC4
+S31AFE005E2E0005B11F0006939F0030915F0034917F0038917F00A2
+S31AFE005E433C917F0040B07F0044B17F0044B09F0046B17F0048C6
+S31AFE005E58B0DF004AB0FF004CB11F004EB11F005038000006B130
+S31AFE005E6D7F00587C0903A6B17F005A3CA00000B17F005CB17FF5
+S31AFE005E82005E38A533A67D8963788C05FFFF9809000039290080
+S31AFE005E97014200FFF438000000B01F0078B01F0094B01F009675
+S31AFE005EACB01F0098B01F009AB01F009EB01F00A0B01F00A23987
+S31AFE005EC1200001B13E09C0A01E09C070060001418200187FC9CE
+S31AFE005ED6F378A00909C0700A00014082FFF87D3E4B783800FFED
+S31AFE005EEBFFB01A00103920001AB13A0014396000003C001088E6
+S31AFE005F00917A00046000000C901A00003920D555B13A000E38AF
+S31AFE005F1500280AB01A0008392000903D60FA10992B0000A01E5D
+S31AFE005F2A096260000001B01E0962A13E09605529043CB13E095B
+S31AFE005F3F60419E00103D6002007C0004AC7D788BA6813900004F
+S31AFE005F543C800000816900247F23CB78800B0000388433A07CEF
+S31AFE005F690803A64E800021386000018001002C7C0803A6832168
+S31AFE005F7E000C83410010836100148381001883A1001C83C10092
+S31AFE005F932083E10024382100284E8000209421FFF87C0802A606
+S31AFE005FA89001000C4BFFF7BD3860001C480049113860001C48F3
+S31AFE005FBD0047B98001000C7C0803A6382100084E80002094210D
+S31AFE005FD2FFF87C0802A69001000C3860001C48004631386000EB
+S31AFE005FE7038001000C7C0803A6382100084E8000209421FFF0F1
+S31AFE005FFC7C0802A693C1000893E1000C900100143D6000003D05
+S31AFE006011200000392939883BEB39847C1F4840418000207D3E91
+S31AFE0060264B78813F00003BFFFFFC7D2803A64E8000217C1FF0E1
+S31AFE00603B404080FFEC800100147C0803A683C1000883E1000CE3
+S31AFE006050382100104E8000209421FFF87C0802A69001000C3D2E
+S31AFE006065200000800937042C00000041820010800937049003E8
+S31AFE00607A0094480000243D20000090693BF0480018197C16027F
+S31AFE00608FA628007A124081000C38007A127C1603A68001000C45
+S31AFE0060A47C0803A6382100084E8000204E800020386000004E93
+S31AFE0060B98000209421FFF07C0802A693E1000C900100144800F1
+S31AFE0060CE05F13D2000003889366C800400083BE000002C000030
+S31AFE0060E300418200307FE3FB787C9F2378809F000080BF0004C4
+S31AFE0060F880DF000888FF000C3BFF0010480004C1801F00082C6B
+S31AFE00610D0000004082FFE0800100147C0803A683E1000C38214D
+S31AFE00612200104E8000203C000A007C0004AC7C108BA67C0004B7
+S31AFE006137AC7C188BA63C000C004C00012C7C108BA64C00012CE7
+S31AFE00614C7C0004AC7C188BA63C0002004C00012C7C108BA64C89
+S31AFE00616100012C7C0004AC7C188BA64E8000209421FFF87C08E9
+S31AFE00617602A69001000C480000ED38007A127C1603A680010016
+S31AFE00618B0C7C0803A6382100084E8000203D20002F6129AF08A6
+S31AFE0061A07C6349D63C00431B6000DE837C0300967C63FE707CAF
+S31AFE0061B50096707D6300507D3602A67D605B782C000000396BC0
+S31AFE0061CAFFFF4C810020394BFFFF7C1602A67C0900004182FFCE
+S31AFE0061DFF87C0903787D605B782C0000007D4B53784181FFE09F
+S31AFE0061F44E8000209421FFF87C0802A69001000C3D20FF006172
+S31AFE00620929093038000001B00900007C0006ACA00900007C00D5
+S31AFE00621E06AC5400AAFF38600000418200302060003A3D6000D6
+S31AFE006233005460103A396B33A87D6B002E3D2000003929349438
+S31AFE0062487C89002E7D6803A64E800021546307FA8001000C7CCC
+S31AFE00625D0803A6382100084E8000203D200000394933A8390035
+S31AFE00627200407C0A402E3D20FE00392960B47C00480041820087
+S31AFE00628718800A00403D20FE013929B2187C00480040820034DA
+S31AFE00629C3D20FE00392961F83D600000380000007D2A412E6088
+S31AFE0062B100DEAD396B34947C0B412E3D2000003929358038003B
+S31AFE0062C600007C09412E3D60FE01800B3AAC3D20FE0139293AC6
+S31AFE0062DB707D2902147D2903A64E8004203D20FF006129001443
+S31AFE0062F0800900007C0006AC64000001900900007C0006AC486A
+S31AFE0063050000E83D20FF0061290200A00900007C0006AC600078
+S31AFE00631A0008B00900007C0006AC480000C83D20FF0061290283
+S31AFE00632F00A00900007C0006AC60000004B00900007C0006AC33
+S31AFE006344480000A83D20FF0061290240A00900007C0006AC60F1
+S31AFE006359000004B00900007C0006AC480000883D20FF0061298A
+S31AFE00636E0220A00900007C0006AC60000008B00900007C00067A
+S31AFE006383AC480000683D20FF0061290220A00900007C0006ACC6
+S31AFE00639860000004B00900007C0006AC480000483D20FF006154
+S31AFE0063AD290940800900007C0006AC60000080900900007C00B9
+S31AFE0063C206AC480000283D20FF0061290948816900007C0006FD
+S31AFE0063D7AC3C00800054005D7E7D6B0378916900007C0006AC8B
+S31AFE0063EC3D60FE01800B3BBC3D20FE0139293B587D2902147DF0
+S31AFE0064012903A64E8004203D20FF0061290200A00900007C00B1
+S31AFE00641606AC5400063E60000100B00900007C0006AC48000093
+S31AFE00642B683D20FF0061290240A00900007C0006AC5400063E59
+S31AFE00644060000100B00900007C0006AC480000443D20FF0061B2
+S31AFE006455290220A00900007C0006AC5400063E60000100B0095A
+S31AFE00646A00007C0006AC480000203D20FF0061290940800900CB
+S31AFE00647F007C0006AC6000E000900900007C0006AC3D60FE0133
+S31AFE006494800B3CA43D20FE0139293C407D2902147D2903A64EF1
+S31AFE0064A98004203D20FF0061290014800900007C0006AC600025
+S31AFE0064BE0040900900007C0006AC4E8000203D20FF00612902E8
+S31AFE0064D300A00900007C0006AC60000008B00900007C0006AC8A
+S31AFE0064E84E8000203D20FF0061290200A00900007C0006AC608E
+S31AFE0064FD000004B00900007C0006AC4E8000203D20FF006129C7
+S31AFE0065120240A00900007C0006AC60000004B00900007C0006B8
+S31AFE006527AC4E8000203D20FF0061290220A00900007C0006ACE2
+S31AFE00653C60000008B00900007C0006AC4E8000203D20FF00614C
+S31AFE006551290220A00900007C0006AC60000004B00900007C0076
+S31AFE00656606AC4E8000203D20FF0061290940800900007C000642
+S31AFE00657BAC60000080900900007C0006AC4E8000203D20FF006A
+S31AFE00659061290948816900007C0006AC3C00800054000FFE7D65
+S31AFE0065A56B0378916900007C0006AC4E8000207C1E22A660001F
+S31AFE0065BA00077C1E23A64E8000209421FFF093E1000C54E0FF19
+S31AFE0065CFFE70FF00012F0000002F8300207CC0FE707D60002697
+S31AFE0065E4556B1FFE54A500267D400026554ADFFE7C0600507DF4
+S31AFE0065F94A00D07CE0002654E7EFFE7D6B00D060A808FF5400AA
+S31AFE00660E0FFE7D0858787D4950F860A508FD7CFF00387CAB58C7
+S31AFE00662338714A000D2F9F00007D654378548400267129001D3E
+S31AFE0066387D4A4B78608402003960000039000020419E005C5458
+S31AFE00664D6B402E7D55C3A67D70C3A67C93C3A67CB6C3A660A0B7
+S31AFE00666201007D5DC3A67D78C3A67C9BC3A67C1EC3A63863005F
+S31AFE006677013CC6FF807F8340007CC0FE707C0600507D20002607
+S31AFE00668C5529EFFE54000FFE7D2700393C8400803CA50080406B
+S31AFE0066A182FFAC656020007C10C3A67C18C3A683E1000C382113
+S31AFE0066B600104E800020380000007C19C3A6380000207C0903B7
+S31AFE0066CBA639200000380000007C15C3A67D30C3A67C13C3A677
+S31AFE0066E07C16C3A67C1DC3A67D38C3A67C1BC3A67C1EC3A6394A
+S31AFE0066F52901004200FFD83C00200060001F007C10C3A67C18E5
+S31AFE00670AC3A64E8000209421FDE87CDE9AA674C6FFFF3D600016
+S31AFE00671F00812B36BC2C090000408202003940003038000001E8
+S31AFE0067347D4903A6900B36BCB12609C43800000039263C807DDC
+S31AFE006749284B789806086038E62E0838A1000838862E0038618C
+S31AFE00675E00093981021198090000392900014200FFF839202E88
+S31AFE00677300B1280002396000103940020938002E089968000591
+S31AFE00678899680004B0080000B14800063920A800B1262E0838F6
+S31AFE00679D000101B007000290A700047C8B2378B14B0002380015
+S31AFE0067B200A59801000890AB0004B1262E003800000098060866
+S31AFE0067C7643920005099260868380000019806086039200111D3
+S31AFE0067DCB12609C0A00609C070090001418200187CC93378A0B0
+S31AFE0067F10909C0700A00014082FFF87D264B7838000211B00622
+S31AFE00680609C0A12609C071200001418200187CC93378A0090911
+S31AFE00681BC0700A00014082FFF87D264B78392000007D2903A662
+S31AFE006830380000819806086C7D4902A6614AC3517D4903A6A048
+S31AFE0068450B000070098000418200084200FFF4394001007D49F6
+S31AFE00685A03A63D2000013929807439600000380000FF7C09591A
+S31AFE00686FAE396B00014200FFF87D8763787C6B1B787C0B38006C
+S31AFE0068844182009C3CA00001880B00002C00004D4082008088E9
+S31AFE0068990B00012C00004F40820074880B00022C000054408252
+S31AFE0068AE00688C0B000839400000892B00015400402E7C084B0B
+S31AFE0068C3787C0A4000396B000240800054388580747C651B789F
+S31AFE0068D8880B0000396B00017D693A787D23FE707C0451AE7CCE
+S31AFE0068ED604A787C0018507C00FE70394A00017CA900787C0AFB
+S31AFE00690240007D6000387C0B4B784180FFCC48000010396B0055
+S31AFE006917017C0B38004082FF70380000009806086038210218C5
+S31AFE00692C4E8000209421FFE87C0802A693A1000C93C100109365
+S31AFE006941E100149001001C7C7D1B787C9F23787CBE2B784BFF32
+S31AFE006956FDBD3D20000139698074394B01007C0B50404080001E
+S31AFE00696B8457A8063E880B00007C00400040820054886B0001F3
+S31AFE006980396B00027F83F0004FFEE3827C000026540007FE7C3D
+S31AFE0069950000D07FC900787C6000387C034B794081004C7C6910
+S31AFE0069AA03A67D695B787FE4FB7888090000392900019804000C
+S31AFE0069BF00388400014200FFF048000028886B00013803000230
+S31AFE0069D47D2B00EE5529063E2C0900FF4182000C7C0B504041F7
+S31AFE0069E980FF88386000008001001C7C0803A683A1000C83C1B8
+S31AFE0069FE001083E10014382100184E8000209421FFF87C080267
+S31AFE006A13A69001000C4800463D8001000C7C0803A63821000841
+S31AFE006A284E8000203C80FF00608400007C9E9BA63CA0FA106027
+S31AFE006A3DA500013C60000060630000986500007C788AA63C607E
+S31AFE006A520A007C0004AC7C788BA63C600C007C0004AC7C788B7D
+S31AFE006A67A63C6004007C0004AC7C788BA63C6001007C0004ACB6
+S31AFE006A7C7C788BA63C6007007C0004AC7C788BA67C708AA63C90
+S31AFE006A91600A007C708BA64C00012C3C600C007C708BA64C00DB
+S31AFE006AA6012C3C6004007C708BA64C00012C7C0004AC3C6000AC
+S31AFE006ABB6060632400906400003C60FFFF6063FF8890640004AB
+S31AFE006AD03C600000606300C2B06402003C6055CC6063AA339089
+S31AFE006AE564032090640324906403289064032C386000C3B06445
+S31AFE006AFA022038600083B06402403CA0FE0060A56C9C3CC0FE0F
+S31AFE006B0F0060C66D9C7CE530507CE7167038C000008065000097
+S31AFE006B249064017C90C4016838A5000438C600017C063800414F
+S31AFE006B3980FFE838600200B064017A3C601880606310009064B8
+S31AFE006B4E01703C60FE00606304013CA0FF8060A509609064019D
+S31AFE006B630090A401043C600000606300813CA0FFC060A504005C
+S31AFE006B789064010890A4010C3C600000606300803CA0000060AB
+S31AFE006B8DA504009064011090A401143C600000606300803CA03D
+S31AFE006BA2000060A504009064011890A4011C3C60FA0060630416
+S31AFE006BB7013CA0FFE060A509309064012090A401243C60800041
+S31AFE006BCC606300013CA0A00060A501089064012890A4012C3CA8
+S31AFE006BE160FA21606300013CA0FFFF60A501089064013090A41B
+S31AFE006BF601343C60FC00606300013CA0FF8060A5094090640157
+S31AFE006C0B3890A4013C3C60020060630000906402808064028486
+S31AFE006C205463653E2C030000418200103C605F506063D00048D9
+S31AFE006C3500000C3C6000006063D000906402843C4000003C6079
+S31AFE006C4AFF0060630014904300003C400000604200007C42109C
+S31AFE006C5FF87C5603A6384000013C60FF0060630200B0430000DD
+S31AFE006C743CA0FA1060A500013C60000060630008986500007C3B
+S31AFE006C896802A67063FFFF6463FE007C6803A64E800020CFAF53
+S31AFE006C9EC0040FAFC4040CAF8C0410AF0C04F0AF0C00F3BF48D4
+S31AFE006CB305FFFFC005FFFFC005CFAFC0040FAFC4040CAF8C042A
+S31AFE006CC800AF0C0407AF0C080CAF0C0401AF0C040FAF0C080CC1
+S31AFE006CDDAF0C0401AF0C040FAF0C080CAF0C0410AF0C04F0AF14
+S31AFE006CF2C000F3BF4805FFFFC005CFFF00040FFF04040CFF0C08
+S31AFE006D070013FF4804FFFFC004FFFFC005FFFFC005FFFFC0050A
+S31AFE006D1CCFFF00040FFF04040CFF0C0003FF0C0C0CFF0C00032B
+S31AFE006D31FF0C0C0CFF0C0003FF0C0C0CFF0C0013FF4804FFFF8E
+S31AFE006D46C004FFFFC005FFFFC005FFFFC005FFFFC005FFFFC0A6
+S31AFE006D5B05FCFFC004C0FFC00401FFC0040FFFC0041FFFC00460
+S31AFE006D70FFFFC004FFFFC005FFFFC005FFFFC005FFFFC005FF3D
+S31AFE006D85FFC005FFFFC005FFFFC007FFFFC007FFFFC007FFFF21
+S31AFE006D9AC0077063000E3C80FA1060840001986400004E8000C3
+S31AFE006DAF203C80FA106084000138A0000A98A400003CA0000AFC
+S31AFE006DC47CA903A64200000038A0000C98A400003CA0000A7C24
+S31AFE006DD9A903A6420000003863FFFF2C0300004080FFD038A0DE
+S31AFE006DEE000698A400003CA000147CA903A6420000004E80007C
+S31AFE006E03203D20FE0139293D285463073E7C6918AE4E8000209E
+S31AFE006E189421FFF87C0802A69001000C3D200000806936D82C6C
+S31AFE006E2D0300004181000C4800291D4800000C3800FFFF9009CA
+S31AFE006E4236D88001000C7C0803A6382100084E8000203803FFE6
+S31AFE006E579F280000054181000C3863FFA94E8000203923FFD02C
+S31AFE006E6C5520063E280000094181000C7D234B784E80002038CC
+S31AFE006E8103FFBF280000054081000C3860FFFF4E80002038631E
+S31AFE006E96FFC94E8000209421FFE07C0802A69001002438000080
+S31AFE006EAB0098010018906100104BFFFF655463063E38810008B2
+S31AFE006EC04800001D2C0300014082FFEC800100247C0803A6386D
+S31AFE006ED52100204E8000209421FFF07C0802A693C1000893E1D5
+S31AFE006EEA000C900100147C9F2378897F00102C0B000040820017
+S31AFE006EFF282C03002440820098392000013800FFFF901F000462
+S31AFE006F14993F0010917F0000917F000C4800007C2C0B00014014
+S31AFE006F298200542C03002340820020815F0008817F000C380019
+S31AFE006F3E00007C0A59AE39200002993F001048000050817F00D2
+S31AFE006F530C2C0B0800418200E8801F0000813F00087C001A141E
+S31AFE006F68901F00007C6959AE380B0001901F000C480000242CDE
+S31AFE006F7D0B0002408200245463063E4BFFFECD546320363800B3
+S31AFE006F920003907F0004981F001038600000480000AC2C0B0046
+S31AFE006FA703408200985463063E4BFFFEA5801F0004893F00031E
+S31AFE006FBC7C001B787C090000901F0004418200103860002D4895
+S31AFE006FD10027454800006C3860002B48002739813F00088809C3
+S31AFE006FE600022C00003A4082004C8869000083DF000C4800274E
+S31AFE006FFB1D813F00088869000148002711396000037C0BF040D3
+S31AFE007010418100287FCAF3787FE4FB78812400087C0958AE7D3E
+S31AFE0070252B4A14396B00017C0B50409809FFFD4081FFE8386030
+S31AFE00703A00014800001038000000981F00103860FFFF800100CE
+S31AFE00704F147C0803A683C1000883E1000C382100104E800020D4
+S31AFE0070649421FFE07C0802A69361000C9381001093A100149354
+S31AFE007079C1001893E1001C900100243D20FE013B693D287C7C83
+S31AFE00708E1B7838600024480026818BFC00003BC000002C1F00DE
+S31AFE0070A3003BA00000418200247FE3FB78480026657C1DFA14C3
+S31AFE0070B83BDE00017FFCF0AE541D063E2C1F00004082FFE438AF
+S31AFE0070CD6000234800264557A0E13E7C7B00AE4800263957A01B
+S31AFE0070E2073E7C7B00AE4800262D4BFFFD2D5463067E2C030032
+S31AFE0070F72B4082FF98800100247C0803A68361000C8381001026
+S31AFE00710C83A1001483C1001883E1001C382100204E800020945B
+S31AFE00712121FFD87C0802A6936100149381001893A1001C93C159
+S31AFE007136002093E100249001002C3D20000081693BA03D40002C
+S31AFE00714B002C0B000038000000900A36DC3F6000003F800000B2
+S31AFE007160408101383FC000003FA000003D20000080093BAC2C45
+S31AFE0071750000004182006C801C3BA03D600000280000034081D2
+S31AFE00718A0018801E3BA4700900034082000C3BE00004480000A6
+S31AFE00719F34801C3BA03BE000012800000140810024800B3BA498
+S31AFE0071B4540007FE7C0000D07C00FE707C0900F8540007FE5508
+S31AFE0071C92907BC7C1F4B78808B3BA4386100087FE5FB784800B9
+S31AFE0071DE312948000014813E3BA43BE0000188090000980100FE
+S31AFE0071F3083D200000800936DC2C0000004082009839000000C4
+S31AFE0072087C08F8004080006C3D20FE0138C93D2838A100083CE6
+S31AFE00721DE000003C8000007D6828AE81473BA85560E13E7D26DF
+S31AFE00723200AE992A0000800436DC394A00012C00000091473B79
+S31AFE007247A8408200505560073E7D2600AE396A0001992A0000C2
+S31AFE00725C801B36DC91673BA82C00000040820030390800017CB5
+S31AFE00727108F8004180FFB0813D3BA0801E3BA47D3F48502C09F5
+S31AFE00728600007C00FA14901E3BA4913D3BA04181FED880010016
+S31AFE00729B2C7C0803A6836100148381001883A1001C83C10020C9
+S31AFE0072B083E10024382100284E8000209421FFE87C0802A69373
+S31AFE0072C5A1000C93C1001093E100149001001C2C0600003D20DB
+S31AFE0072DA00003D6000003D4000003D00000090893BA8906B3B12
+S31AFE0072EFA490AA3BA090C83BAC418200303FA000003800000084
+S31AFE007304901D36DC813D36DC4BFFFE15813D36DC801D36DC2CD9
+S31AFE00731900000041820010386000004800001C4BFFFDF93D60AF
+S31AFE00732E0000812B3BA83800000098090000806B3BA88001008F
+S31AFE0073431C7C0803A683A1000C83C1001083E10014382100187B
+S31AFE0073584E8000209421FFC07C0802A69281001092A100149292
+S31AFE00736DC1001892E1001C930100209321002493410028936123
+S31AFE007382002C9381003093A1003493C1003893E1003C9001004D
+S31AFE007397443D20000080093BA03B6000002C0000003D200000B4
+S31AFE0073AC936936DC3E8000003EA00000408101703D200000810E
+S31AFE0073C1693BA43F000000880B00002C000000418201583EC053
+S31AFE0073D600003F4000003EE0000080163BAC2C00000041820095
+S31AFE0073EB5880153BA02800000340810018801A3BA870090003C4
+S31AFE0074004082000C3BC000044800003C80153BA03BC00001288E
+S31AFE0074150000014081002C801A3BA8540007FE7C0000D07C00D2
+S31AFE00742AFE707C0900F8540007FE552907BC7C1E4B784800001F
+S31AFE00743F083BC000013BE000007C1FF000408000743FA0000077
+S31AFE0074543F2000003B810008813D3BA48869000039290001917A
+S31AFE0074693D3BA45463063E4BFFF9E5801936DC547B26362C00C9
+S31AFE00747E0000408200A881383BA4886900003929000191383B9B
+S31AFE007493A45463063E4BFFF9BD801436DC7F631B782C000000FA
+S31AFE0074A8547B063E4082007C7F7FE1AE3BFF00017C1FF00041E6
+S31AFE0074BD80FFA080163BAC2C00000041820018809A3BA838617D
+S31AFE0074D200087FC5F37848002E8D4800000C813A3BA89B6900F1
+S31AFE0074E7003D200000800936DC2C0000004082003481373BA0DF
+S31AFE0074FC801A3BA87D3E48502C0900007C00F214901A3BA891D2
+S31AFE007511373BA04081001481383BA4880900002C000000408263
+S31AFE007526FEBC800100447C0803A68281001082A1001482C10013
+S31AFE00753B1882E1001C8301002083210024834100288361002C38
+S31AFE0075508381003083A1003483C1003883E1003C382100404E93
+S31AFE0075658000209421FFE87C0802A693A1000C93C1001093E18D
+S31AFE00757A00149001001C2C0600003D2000003D6000003D40008E
+S31AFE00758F003D00000090693BA4908B3BA890AA3BA090C83BAC7C
+S31AFE0075A4418200303FA0000038000000901D36DC813D36DC4BEA
+S31AFE0075B9FFFDA5813D36DC801D36DC2C00000041820010386002
+S31AFE0075CE0000480000104BFFFD893D20000080693BA8800100D2
+S31AFE0075E31C7C0803A683A1000C83C1001083E1001438210018D9
+S31AFE0075F84E8000209421FFF87C0802A69001000C480028453D25
+S31AFE00760D20000038000001900936C08001000C7C0803A6382169
+S31AFE00762200084E8000209421FFE87C0802A693A1000C93C100FD
+S31AFE0076371093E100149001001C7C9E23783BA000007C7F1B78D7
+S31AFE00764C93BE000048000024801E0000813F0000540020367CE4
+S31AFE007661001B7839290001901E0000913F00003BBD0001813FE3
+S31AFE0076760000886900002C030000418200104BFFF7D17C631BFC
+S31AFE00768B794080FFC87FA3EB788001001C7C0803A683A1000C67
+S31AFE0076A083C1001083E10014382100184E8000207C84237939D1
+S31AFE0076B54000004082001838000030980300019803000038606B
+S31AFE0076CA00024E800020392500077D20FE7054001F7E7D2902AE
+S31AFE0076DF147D251E71418200603D20FE0138C93D2838E5FFFF4D
+S31AFE0076F454E018387C88043068A90001200900007D204914315B
+S31AFE00770968FFFF7C0B41107C0B4B79418200285508063E5500FD
+S31AFE00771EE13E7D6600AE5509073E7C0648AE996300009C0300EC
+S31AFE0077330138630001394A00027CE53B794082FFB07D4353780A
+S31AFE0077484E8000209421FFF07C0802A693E1000C900100143D08
+S31AFE00775D20000080A93BE07C641B782C050000386000004081B2
+S31AFE00777200843FE00000801F36E42C000000418200103860000B
+S31AFE007787017C0803A64E8000212C030001408200103D2000006D
+S31AFE00779C986936E048000054801F36E42123FFFF216900007D1F
+S31AFE0077B12B4914216000007C0B01147C0B4B79418200343D207B
+S31AFE0077C6000080093BBC2C00000041820024386000017C0803F7
+S31AFE0077DBA64E8000212C030000418200103D2000003800000168
+S31AFE0077F0980936E1800100147C0803A683E1000C382100104EDF
+S31AFE0078058000209421FFF07C0802A693E1000C900100143FE0B6
+S31AFE00781A0000881F36E02C000000418200343D20000080093659
+S31AFE00782FE42C000000418200243D20000080A93BE03860000010
+S31AFE007844388000007C0803A64E80002138000000981F36E03F13
+S31AFE007859E00000881F36E12C000000418200283D20000080097B
+S31AFE00786E3BBC2C00000041820018386000007C0803A64E800070
+S31AFE0078832138000000981F36E1800100147C0803A683E1000C93
+S31AFE007898382100104E8000209421FFF07C0802A693C1000893C1
+S31AFE0078ADE1000C900100143D200000800936D42C000000418251
+S31AFE0078C20010800936D47C0803A64E8000213D20000080093BCD
+S31AFE0078D7F42C000000418200143800000090093BF43BE0000284
+S31AFE0078EC48000010480084E5480084197C7F1B78480085A12C6D
+S31AFE00790103000041820008480085CD4800858D4BFFFEF9480022
+S31AFE007916853D386000034800288938600003480028192C1F0093
+S31AFE00792B00418200203FC00000813E36C47FE3FB787D2803A685
+S31AFE0079404E8000212C0300004082FFEC480085493D2000008070
+S31AFE0079550936D02C00000041820010800936D07C0803A64E8081
+S31AFE00796A0021800100147C0803A683C1000883E1000C3821000C
+S31AFE00797F104E8000209421FFB87C0802A69361003493810038E5
+S31AFE00799493A1003C93C1004093E100449001004C7C7E1B783B79
+S31AFE0079A9E000003F6000003B810028801B3BC03BA000012C00C4
+S31AFE0079BE00004182001C7FE3FB787F84E3787C0803A64E8000A3
+S31AFE0079D3217C7D1B78480000107FE3FB7848001D0D9061002836
+S31AFE0079E8381FFFE02800001F7C0A03782F9D00003BFF00017F82
+S31AFE0079FD83E3784181004C390000047D0903A6386100087C6B91
+S31AFE007A121B7838000000392000007C0B49AE392900014200FF15
+S31AFE007A27F8380000047C0903A67C6943787F8BE378880B00004C
+S31AFE007A3C396B000198090000392900014200FFF0419E00302028
+S31AFE007A510A001F7C0001107C0500F85400077A54A507387FC49D
+S31AFE007A66F3787C052B7838C000004BFFF84D7C7E1B784800001C
+S31AFE007A7B58212A001F7D2949107D2048F8540006F65529073847
+S31AFE007A907D2903782C0900007FCBF378380000783929FFFF4181
+S31AFE007AA58200182C090000980B0000396B00013929FFFF40828F
+S31AFE007ABAFFF0280A001F4181000C3BDE0010480000083BDE0013
+S31AFE007ACF082C1F00464081FEE08001004C7C0803A68361003454
+S31AFE007AE48381003883A1003C83C1004083E10044382100484ED2
+S31AFE007AF98000209421FFD07C0802A67D8000269381002093A199
+S31AFE007B0E002493C1002893E1002C900100349181001C880300A0
+S31AFE007B2300386300012C0000507C9D237890610008392000002B
+S31AFE007B383BC0004740820070386100083881000C4BFFFAE12C09
+S31AFE007B4D030000418200288121000888090000392900012C0067
+S31AFE007B62003D91210008408200108121000C3BC9000148000046
+S31AFE007B77383D20FE0188093D407FA4EB782C00000039693D4082
+S31AFE007B8C418200D8880B0000980400008D2B0001388400012C74
+S31AFE007BA10900004082FFEC480000BC7D3F4B787C1FF000408047
+S31AFE007BB600803B800000397FFFE020AB001F7CA5291039210046
+S31AFE007BCB103881000C7CA028F87C8428787CA9483854A5077AD1
+S31AFE007BE054000738806100082A0B001F7CA503787D2423789351
+S31AFE007BF581001038C000004BFFF96D808100107FE3FB78480010
+S31AFE007C0A1AF94191001081210008392900104800000C8121005A
+S31AFE007C1F0839290008912100083BFF00017C1FF0004180FF8C0E
+S31AFE007C343D20FE0188093D447FA4EB782C00000039693D4441B3
+S31AFE007C4982001C880B0000980400008D2B0001388400012C09AA
+S31AFE007C5E00004082FFEC380000009804000080010034818100D5
+S31AFE007C731C7C0803A68381002083A1002483C1002883E1002C47
+S31AFE007C887D808120382100304E8000209421FF307C0802A6932B
+S31AFE007C9DC100C893E100CC900100D43BC000003D6000017C7F0C
+S31AFE007CB21B789BCB8B04893F00003809FFC12800003441810842
+S31AFE007CC7903D60FE01396B3D985400103A7D4B002E3D20FE010F
+S31AFE007CDC39293D987D4A4A147D4903A64E800420480080E948D9
+S31AFE007CF100801D3D20FE0139293D285460E73E7D0900AE5463F6
+S31AFE007D06073E7CE918AE3D40000138000053392A8B04980A8BCC
+S31AFE007D1B0439600000996900039909000198E900024800083CFB
+S31AFE007D303D20FE0188093D483D6000012C000000396B8B043992
+S31AFE007D45493D48418207E8880A00008D2A0001980B00002C0983
+S31AFE007D5A0000396B00014082FFEC480007CC387F000148000B98
+S31AFE007D6F99480007F8387F000148000D5D480007EC3C600001D9
+S31AFE007D8438638B044BFFFBFD480007DC881F00012C000000403B
+S31AFE007D998200404800092D3D20FE0188093D443D6000012C0059
+S31AFE007DAE0000396B8B0439493D4441820778880A00008D2A00FB
+S31AFE007DC301980B00002C090000396B00014082FFEC4800075CD1
+S31AFE007DD8381F0001900100883BC1008C3BE100887FE3FB787FA1
+S31AFE007DEDC4F3784BFFF8392C030000418200A481210088880982
+S31AFE007E020000392900012C00002C912100884082008C7FE3FBC7
+S31AFE007E1778388100904BFFF80D2C0300004182007881210088AE
+S31AFE007E2C88090000392900012C00002C91210088408200608015
+S31AFE007E4181008C2C0400004182003880610090480008B97C6496
+S31AFE007E561B79418200148061008880A1008C38C000004BFFF759
+S31AFE007E6B018001008C812100887C0002147D290214912100883E
+S31AFE007E8081210088880900002C00002C40820010380900019032
+S31AFE007E950100884BFFFF5081210088880900002C000000408209
+S31AFE007EAA003C3D20FE0188093D443D6000012C000000396B8B1C
+S31AFE007EBF0439493D444182066C880A00008D2A0001980B000081
+S31AFE007ED42C090000396B00014082FFEC480006503D20FE01888C
+S31AFE007EE9093D883D6000012C000000396B8B0439493D884182AB
+S31AFE007EFE0634880A00008D2A0001980B00002C090000396B006B
+S31AFE007F13014082FFEC480006183C8000017FE3FB7838848B0464
+S31AFE007F284BFFFBD54800063C381F00013BE10094900100947FF0
+S31AFE007F3DE3FB78388100984BFFF6E52C0300004182009081213B
+S31AFE007F52009488090000392900012C00002C912100944082002E
+S31AFE007F67787FE3FB783881009C4BFFF6B92C0300004182006410
+S31AFE007F7C806100983C80000180A1009C38848B0438C000014B6A
+S31AFE007F91FFF32D2C030000408205D03D60FE01880B3D8C3D209D
+S31AFE007FA600012C00000039498B04396B3D8C4182001C880B00A5
+S31AFE007FBB008D2B0001980A00002C090000394A00014082FFECEC
+S31AFE007FD038000000980A0000480005903D20FE0188093D883DF2
+S31AFE007FE56000012C000000396B8B0439493D884182053C880AE6
+S31AFE007FFA00008D2A0001980B00002C090000396B00014082FF78
+S31AFE00800FEC480005203BC00001381F00013BE100A0900100A0BE
+S31AFE0080247FE3FB78388100A44BFFF5FD2C030000418201F88169
+S31AFE0080392100A088090000392900012C00002C912100A040820D
+S31AFE00804E01E07FE3FB78388100A84BFFF5D12C030000418201FF
+S31AFE008063CC806100A088030000386300012C00003A906100A099
+S31AFE008078408201B42C1E000041820124800100A82C00000041B0
+S31AFE00808D8200A8800100A83BE000007C1F004040800054394103
+S31AFE0080A20008816100A0892B0000396B00017D204B782C000056
+S31AFE0080B77D7D2AF9AE916100A040820018880B0000392B000181
+S31AFE0080CC600000207C0AF9AE912100A03BFF0001281F007F415A
+S31AFE0080E1810010800100A87C1F00404180FFB8808100A438613B
+S31AFE0080F600087FE5FB78480022697C03F80040820024812100C0
+S31AFE00810BA8800100A47D3F48502C0900007C00FA14900100A446
+S31AFE008120912100A84082FF6C800100A82C0000004082003C3D2F
+S31AFE00813520FE0188093D443D6000012C000000396B8B04394981
+S31AFE00814A3D44418203E4880A00008D2A0001980B00002C0900CF
+S31AFE00815F00396B00014082FFEC480003C83D20FE0188093D8CEC
+S31AFE0081743D6000012C000000396B8B0439493D8C418203AC88B0
+S31AFE0081890A00008D2A0001980B00002C090000396B00014082DC
+S31AFE00819EFFEC48000390808100A480A100A838C000014BFFF35E
+S31AFE0081B3B92C0300004182003C3D20FE0188093D443D600001C0
+S31AFE0081C82C000000396B8B0439493D444182035C880A00008DFB
+S31AFE0081DD2A0001980B00002C090000396B00014082FFEC4800EC
+S31AFE0081F203403D20FE0188093D8C3D6000012C000000396B8B82
+S31AFE0082070439493D8C41820324880A00008D2A0001980B000038
+S31AFE00821C2C090000396B00014082FFEC480003083D20FE01888B
+S31AFE008231093D903D6000012C000000396B8B0439493D9041824F
+S31AFE00824602EC880A00008D2A0001980B00002C090000396B006B
+S31AFE00825B014082FFEC480002D0881F0000395F0001680900533E
+S31AFE008270216900007D2B491468000043216000007C0B01147C22
+S31AFE0082850B4B7939600000914100AC916100B03BC100AC4182ED
+S31AFE00829A00287FC3F378388100B04BFFF385812100AC880900EC
+S31AFE0082AF002C00003B4082000C38090001900100AC7FC3F37855
+S31AFE0082C4388100B44BFFF3612C0300004182000C806100B448BB
+S31AFE0082D9007B113860000348001EC53860000348001E55806103
+S31AFE0082EE00B02C0300004182004C3D200000800936CC2C000075
+S31AFE008303004182001C800936CC7C0803A64E8000217C631B7968
+S31AFE00831840820008906100B0800100B02C000000418200183871
+S31AFE00832D000009900100B03860000948000339480002384800FE
+S31AFE00834215852C0300004182001838000063981F00003D2000CF
+S31AFE0083570038000001900936F4881F000068090053216900001C
+S31AFE00836C7D2B491468000073216000007C0B01147C0B4B79416F
+S31AFE008381820024386000004BFFF3C53D200001392923503D60D3
+S31AFE0083960000912B36F048007A754800000C386000014BFFF38B
+S31AFE0083ABA53860000348001DF53860000348001D853860FFFF04
+S31AFE0083C0480001B83D200000800936C87C0803A64E800021386B
+S31AFE0083D5600001480001A048001BB1480001883C800001387FEC
+S31AFE0083EA000138848B0438A0012C48000E0D480001703C800051
+S31AFE0083FF01387F000138848B0438A0012C48000D7D48000158E9
+S31AFE008414381F0001900100B8386100B8388100BC4BFFF2052C7B
+S31AFE0084290300004182007C812100B888090000392900012C007E
+S31AFE00843E002C912100B84082006488090000392900012C000049
+S31AFE00845343912100B840820010806100BC480027254800000C0C
+S31AFE008468806100BC480027113D20FE0188093D443D6000012CA6
+S31AFE00847D000000396B8B0439493D44418200A8880A00008D2AFC
+S31AFE0084920001980B00002C090000396B00014082FFEC4800005E
+S31AFE0084A78C3D20FE0188093D883D6000012C000000396B8B0481
+S31AFE0084BC39493D8841820070880A00008D2A0001980B00002C14
+S31AFE0084D1090000396B00014082FFEC48000054381F00019001B2
+S31AFE0084E600C0386100C0388100C44BFFF1392C03000040820082
+S31AFE0084FB443D20FE0188093D943D6000012C000000396B8B0469
+S31AFE00851039493D944182001C880A00008D2A0001980B00002C07
+S31AFE008525090000396B00014082FFEC38000000980B00004800BF
+S31AFE00853A00303C60FE0138633D444BFFEB21806100C4480012EC
+S31AFE00854F3D480000183C8000017FE3FB7838848B0438A0012C94
+S31AFE00856448001E653C60000138638B044BFFEAF538600000802B
+S31AFE0085790100D47C0803A683C100C883E100CC382100D04E80B4
+S31AFE00858E00209421FFE87C0802A693A1000C93C1001093E100D4
+S31AFE0085A3149001001C3FA00001389D8B0448001A1D387D8B04F7
+S31AFE0085B84BFFEAAD8001001C7C0803A683A1000C83C1001083F8
+S31AFE0085CDE10014382100184E8000209421FFF07C0802A693E1FD
+S31AFE0085E2000C900100143D200000800936D82C000000408000EF
+S31AFE0085F7084BFFFF993FE00001387F83044BFFE899387F83041A
+S31AFE00860C4BFFF6897C631B794182FFEC7C6318F854630FFE8038
+S31AFE0086210100147C0803A683E1000C382100104E8000204E8069
+S31AFE00863600209421FFF87C0802A69001000C4BFFEFB948001844
+S31AFE00864B493860002B480010C58001000C7C0803A638210008D2
+S31AFE0086604E8000203D200000906936D84E8000209421FFF87C99
+S31AFE0086750802A69001000C3D20FE0139293D285460E73E7D49DD
+S31AFE00868A00AE5463073E7D0918AE3D60000138000058386B8B85
+S31AFE00869F04980B8B0439200000994300019903000299230003F9
+S31AFE0086B44BFFE9B18001000C7C0803A6382100084E8000203D83
+S31AFE0086C920000138A00000392993543CC0000038E0FFFF3C8088
+S31AFE0086DE00003D6000013D4000003D0000003800000190E63B41
+S31AFE0086F3B490AB9304912A3BB8900836E890A43BB04E80002077
+S31AFE0087089421FFF07C0802A693C1000893E1000C900100143DCA
+S31AFE00871D200000800936E87C7F1B782C0000007C9E237840824B
+S31AFE00873200084BFFFF952C1F0012418100243D600000800B3BA2
+S31AFE008747B83D200001392993547C0900507C00F21428000080BB
+S31AFE00875C4081000C386000004800006C3CE0000080073BB47CDD
+S31AFE0087711F00004182004C3D00000080083BB07C1F00004180B5
+S31AFE0087860020395F00013D20000139299304554B103A380000A8
+S31AFE00879B007C09592E91483BB03D600000814B3BB83D2000013B
+S31AFE0087B03929930457E0103A7D49012E93E73BB43D20000080FB
+S31AFE0087C5693BB87C03F21490093BB8800100147C0803A683C128
+S31AFE0087DA000883E1000C382100104E8000209421FFD87C0802A5
+S31AFE0087EFA6936100149381001893A1001C93C1002093E100243B
+S31AFE0088049001002C3D600000800B36EC7C7D1B782C0000007C20
+S31AFE0088199E23787CBF2B7840820058380000013D20000139291C
+S31AFE00882E93D4900B36EC39400000380000087C0903A6390A00E3
+S31AFE00884301554BC00E5547103A2C0B00005560083C4080000CCB
+S31AFE0088586C0004C168001DB77C0B03784200FFE87D0A43782805
+S31AFE00886D0A00FF7C09392E4081FFC43D600000380000003D2047
+S31AFE00888200013B6993D4900B36DC3F800000480000248921004F
+S31AFE0088970857E0463E7C004A785400103A7D7B002E57E9402E55
+S31AFE0088AC7D3F5A783BBD00012C1E00003BDEFFFF4182002038B0
+S31AFE0088C16100087FA4EB7838A0000148001A39801C36DC2C0061
+S31AFE0088D600004182FFBC7FE3FB788001002C7C0803A683610078
+S31AFE0088EB148381001883A1001C83C1002083E100243821002897
+S31AFE0089004E8000209421FFD87C0802A693A1001C93C100209361
+S31AFE008915E100249001002C3D2000013800000098098B043BA9DD
+S31AFE00892A8B047C691B7890610008880900002C00004340820072
+S31AFE00893FF4880900012C000052408200E88BC900022C1E00438E
+S31AFE008954408200DC880900032C00003A408200D0380900043B60
+S31AFE008969E10008900100087FE3FB783881000C4BFFECB12C03C3
+S31AFE00897E0000418201388121000888090000392900012C00001A
+S31AFE0089932C91210008408201207FE3FB78388100104BFFEC85A9
+S31AFE0089A82C0300004182010C8061000C8081001038A0FFFF4B98
+S31AFE0089BDFFFE2D3D20000083E936DC2C1F0000418200403D20F1
+S31AFE0089D2FE0188093D887FA3EB782C00000039693D884182005C
+S31AFE0089E71C880B00008D2B0001980300002C09000038630001A3
+S31AFE0089FC4082FFEC3800000098030000480000B07C641B78383F
+S31AFE008A117D000138A000204BFFEC993D2000019BC98B0438631B
+S31AFE008A2600017FFD19AE4800008C81210008880900007D2B4BF1
+S31AFE008A3B782C00004C386900017C0903784182002041810010DB
+S31AFE008A502C0000434182003C4800004C2C0900504182001C485F
+S31AFE008A650000403C80000138848B0438A0012C4800095D4800B5
+S31AFE008A7A00403C80000138848B0438A0012C48000A914800006B
+S31AFE008A8F2C3C80000138848B0438A00800480005FD4800001810
+S31AFE008AA43C8000017D635B7838848B0438A0012C480019058013
+S31AFE008AB901002C7C0803A683A1001C83C1002083E100243821C5
+S31AFE008ACE00284E8000209421FFF87C0802A69001000C88030079
+S31AFE008AE3002C000070408200183C80000138848B0438A0012CF7
+S31AFE008AF848000709480000143C80000138848B0438A0012C485C
+S31AFE008B0D0018B58001000C7C0803A6382100084E80002039231D
+S31AFE008B22011C7C0348404C800020800400003884000490030053
+S31AFE008B3700386300047C0348404180FFEC4E8000203800004568
+S31AFE008B4C98030000392000309D230001380000329C03000138E9
+S31AFE008B616300014E8000203800004F980300003920004B9D2323
+S31AFE008B760001386300014E8000209421FFE87C0802A693A1005F
+S31AFE008B8B0C93C1001093E100149001001C7C9E23797C7D1B78EA
+S31AFE008BA03BE0000041820038887D00003BBD00014BFFE2A537A0
+S31AFE008BB5DEFFFF7FFF1B7857E920367C00002654001FFE7C0095
+S31AFE008BCA00D07D2900787FE000387C1F4B784082FFD07FE3FBC1
+S31AFE008BDF788001001C7C0803A683A1000C83C1001083E100143F
+S31AFE008BF4382100184E8000209421FFE87C0802A6938100089392
+S31AFE008C09A1000C93C1001093E100149001001C7C7D1B787C9C68
+S31AFE008C1E2378388000024BFFFF5D907C0000387D0002800100FE
+S31AFE008C331C7C0803A68381000883A1000C83C1001083E10014D7
+S31AFE008C48382100184E8000209421FFE87C0802A693810008933D
+S31AFE008C5DA1000C93C1001093E100149001001C7C7D1B787C9C14
+S31AFE008C722378388000084BFFFF09907C0000387D0008800100F2
+S31AFE008C871C7C0803A68381000883A1000C83C1001083E1001483
+S31AFE008C9C382100184E8000203803FF9F2800000541810014384C
+S31AFE008CB103FFA990040000386000014E8000203803FFBF2800C3
+S31AFE008CC600054181000C3803FFC94BFFFFE43863FFD05460066E
+S31AFE008CDB3E280000094081000C386000004E80002090640000CA
+S31AFE008CF0386000014E8000209421FFE87C0802A693A1000C9349
+S31AFE008D05C1001093E100149001001C7C7D1B78887D00003BBDC6
+S31AFE008D1A00014BFFFF897FA3EB788001001C7C0803A683A100FA
+S31AFE008D2F0C83C1001083E10014382100184E8000203D20FE0198
+S31AFE008D445480E13E39293E707D6900AE5484073E7C0920AE9976
+S31AFE008D596300009C030001386300014E8000209421FFE07C085C
+S31AFE008D6E02A69381001093A1001493C1001893E1001C9001004B
+S31AFE008D83247C7F1B787C9C23783BC000003BA100084800001833
+S31AFE008D988001000857DE20365400073E7FDE03783BFF0001887A
+S31AFE008DAD7F00007FA4EB784BFFFEF12C0300004082FFDC93DC34
+S31AFE008DC200007FE3FB78800100247C0803A68381001083A100B9
+S31AFE008DD71483C1001883E1001C382100204E8000209421FFE890
+S31AFE008DEC7C0802A69381000893A1000C93C1001093E10014906A
+S31AFE008E0101001C7C7F1B783B9F00107C1FE0407C9E2378408093
+S31AFE008E160038887F00004BFFE0398C1F00017C7D1B787C0303E7
+S31AFE008E2B784BFFE02957BD20363BFF00017FBD1B787C1FE04034
+S31AFE008E409BBE00003BDE00014180FFD07FE3FB788001001C7C28
+S31AFE008E550803A68381000883A1000C83C1001083E100143821F2
+S31AFE008E6A00184E8000209421FFE87C0802A693A1000C93C1008D
+S31AFE008E7F1093E100149001001C7C9D237857A4463E4BFFFEB169
+S31AFE008E9457A4863E4BFFFEA957A4C63E4BFFFEA157A4063E4BA3
+S31AFE008EA9FFFE998001001C7C0803A683A1000C83C1001083E168
+S31AFE008EBE0014382100184E8000209421FFE87C0802A693A1002C
+S31AFE008ED30C93C1001093E100149001001C7C9E2378881E000086
+S31AFE008EE83BE000002C000000393E0001418200207FFDFB788858
+S31AFE008EFD0900003BBD00012C000000392900014082FFF07FBFDC
+S31AFE008F12EB782F9F00C97C0000265400EFFE7C0000D07C090098
+S31AFE008F27F87FE00038712900C87C1F4B7857E4063E7FFDFB7874
+S31AFE008F3C4BFFFE052C1D00003BFFFFFF4081005C7FFDFB787FC3
+S31AFE008F51C4F378896400007FAAEB78210B00007C085914696970
+S31AFE008F660023210900007D2849147C004B783000FFFF7C0001B9
+S31AFE008F7B107C0900F87129002A7D6B00387D6B4B782C0A00008B
+S31AFE008F909963000038840001386300013BBDFFFF4181FFB48088
+S31AFE008FA501001C7C0803A683A1000C83C1001083E10014382114
+S31AFE008FBA00184E8000209421FFF07C0802A693C1000893E100F8
+S31AFE008FCF0C900100143BC300107C03F0407C9F2378408000188D
+S31AFE008FE4889F00003BFF00014BFFFD557C03F0404180FFF08097
+S31AFE008FF90100147C0803A683C1000883E1000C382100104E802A
+S31AFE00900E0020392000047D2903A638000000980300003863000F
+S31AFE009023014200FFF87C80C670980300007C8986709D23000171
+S31AFE0090387C8046709C030001988300014E8000203963000438EB
+S31AFE00904D600000394000037D405378892B00002C000000546012
+S31AFE009062402E7C034B78396B0001394AFFFF4181FFE44E8000AC
+S31AFE00907720380000087C0903A68804000038840001980300006E
+S31AFE00908C386300014200FFF04E8000209421FFE87C0802A693B5
+S31AFE0090A1C1001093E100149001001C3BC100087C9F23787FC3B4
+S31AFE0090B6F37848001AE12C0300004182003038000051981F0091
+S31AFE0090CB00392000439D3F00017FC3F3784BFFFF717C641B7839
+S31AFE0090E03BFF00017FE3FB784BFFFD894800000C7FE3FB784B23
+S31AFE0090F5FFFA557C7F1B7838000000981F00008001001C7C0876
+S31AFE00910A03A683C1001083E10014382100184E8000209421FFC4
+S31AFE00911FC87C0802A693A1002C93C1003093E100349001003CEA
+S31AFE0091343BA100207C641B787FA3EB784BFFFED17FA3EB783858
+S31AFE00914981000848001AF52C03000041820014800100103860FE
+S31AFE00915E00012C00000040820008386000008001003C7C080325
+S31AFE009173A683A1002C83C1003083E10034382100384E80002062
+S31AFE0091889421FFE07C0802A693A1001493C1001893E1001C903A
+S31AFE00919D0100247C7D1B787C9F2378388100084BFFFBBD7C1DF6
+S31AFE0091B2180041820020806100084BFFFF612C03000041820024
+S31AFE0091C7107FE3FB784BFFF99D4800000C7FE3FB784BFFF971ED
+S31AFE0091DC3800000098030000800100247C0803A683A10014831A
+S31AFE0091F1C1001883E1001C382100204E8000209421FFD87C0895
+S31AFE00920602A693A1001C93C1002093E100249001002C892300E2
+S31AFE00921B003800FFFF2C0900677C9F237890010008386300017D
+S31AFE0092304182008C418100102C09006341820024480000C02C51
+S31AFE009245090070408200B8388100084BFFFAA9388100104BFF5C
+S31AFE00925AFB91480000B0880300002C00002D4082002088030026
+S31AFE00926F012C000031408200143D2000003800000090093BE069
+S31AFE009284480000103C80000038843BE04BFFFAD93D20000080EC
+S31AFE009299693BE02C030000418200104BFFFE792C030000418283
+S31AFE0092AE00547FE3FB784BFFF8B5480000503FA00000389D3B00
+S31AFE0092C3DC4BFFFAA5809D3BDC386100104BFFFD41801D3BDCB4
+S31AFE0092D82C00FFFF4182000C2C000000408200103800000290BC
+S31AFE0092ED0100084800001C3800000190010008480000107FE36F
+S31AFE009302FB784BFFF8457C7F1B78800100082C00000041820052
+S31AFE00931728418100102C00FFFF4182008C4800007C2C000001D9
+S31AFE00932C418200242C00000241820060480000683D20000139A9
+S31AFE0093412923503D600000912B36F0480000603FA000013C80B4
+S31AFE009356000138842350387D246C4BFFF7C13861001038800026
+S31AFE00936B4738BD246C480019292C03000041820028381D246C94
+S31AFE0093803D2000007FE3FB78900936F04BFFF7DD480000187FE6
+S31AFE009395E3FB784BFFF7D14800000C7FE3FB784BFFF7A57C7F4D
+S31AFE0093AA1B7838000000981F00008001002C7C0803A683A1002A
+S31AFE0093BF1C83C1002083E10024382100284E8000209421FFD09A
+S31AFE0093D47C0802A693210014934100189361001C9381002093C9
+S31AFE0093E9A1002493C1002893E1002C900100347C9F23787CBDD6
+S31AFE0093FE2B78388100084BFFF8F53881000C3F8000004BFFF7F6
+S31AFE009413ED389C3BCC4BFFF9D1380000513BBDFFE67F3FEA1442
+S31AFE009428981F00003920004D9D3F00013BFF00017FFAFB787F4B
+S31AFE00943D43D378388000004BFFF8FD7C7F1B787FFEFB783800DB
+S31AFE0094520030389C3BCC981E0000387E00014BFFFB617C7F1BCD
+S31AFE009467783B8000003F600000480000247FE3FB78389D3BD4F5
+S31AFE00947C4BFFFB457C7F1B78389D3BD43B9C0001387B3BCC4BFE
+S31AFE009491FFFBE97C1FC840408000408001000C7C1C0000408057
+S31AFE0094A60034806100083C8000003FA0000038843BCC38BD3B02
+S31AFE0094BBD4480017292C03000038000000900100084082FFA8D3
+S31AFE0094D038000031981E00007F43D3785784063E4BFFF861385D
+S31AFE0094E5000000981F0000800100347C0803A683210014834159
+S31AFE0094FA00188361001C8381002083A1002483C1002883E10005
+S31AFE00950F2C382100304E8000209421FFC07C0802A693A1003498
+S31AFE00952493C1003893E1003C90010044380000007C9F2378909F
+S31AFE00953901001C900100109001001490010018388100204BFFEA
+S31AFE00954EF7053BA100287FA4EB784BFFF8917FA3EB783881006D
+S31AFE00956308480016DD2C030000418200E438000071981F000076
+S31AFE009578392000709D3F000180810020387F00014BFFF8E938F8
+S31AFE00958D8100084BFFFA31800100207C7F1B787009000241825A
+S31AFE0095A20020388000024BFFF8C9388000024BFFF79188810036
+S31AFE0095B7134BFFF7897C7F1B7880010020700900044182002827
+S31AFE0095CC800100142C0000004182001C7FE3FB78388000044B0A
+S31AFE0095E1FFF891808100144BFFF8E17C7F1B7880010020700909
+S31AFE0095F6000841820028800100182C0000004182001C7FE3FB68
+S31AFE00960B78388000084BFFF861808100184BFFF8B17C7F1B78D1
+S31AFE0096208001002070090010418200348001001C2C0000004106
+S31AFE0096358200287FE3FB78388000104BFFF8318081001C4BFFFB
+S31AFE00964AF8814800000C7FE3FB784BFFF4F57C7F1B783800006C
+S31AFE00965F00981F0000800100447C0803A683A1003483C1003875
+S31AFE00967483E1003C382100404E8000209421FFD87C0802A6936B
+S31AFE0096896100149381001893A1001C93C1002093E1002490013A
+S31AFE00969E002C3B8100087C7D1B787C9B23787CA42B787F83E3DD
+S31AFE0096B3784BFFF95D7F83E3787FA4EB787F65DB7848001631DD
+S31AFE0096C88001002C7C0803A6836100148381001883A1001C83D8
+S31AFE0096DDC1002083E10024382100284E8000203D200000816955
+S31AFE0096F236F05463103A7C63582E4E8000203D20000081693668
+S31AFE009707F05463103A7C83592E4E8000209421FFF87C0802A60C
+S31AFE00971C9001000C3D20000039293200816900185464063E8028
+S31AFE0097316B0000800B000C7C0803A64E8000218001000C7C08F0
+S31AFE00974603A6382100084E8000209421FFF87C0802A6900100A9
+S31AFE00975B0C3D2000003929320081690018806B0000800B001070
+S31AFE0097707C0803A64E8000218001000C7C0803A6382100084E5B
+S31AFE0097858000209421FFF87C0802A69001000C3D2000003929F7
+S31AFE00979A3200816900187C651B78806B0000800B0014388000CC
+S31AFE0097AF007C0803A64E8000218001000C7C0803A6382100086A
+S31AFE0097C44E8000209421FFE87C0802A693A1000C93C10010939F
+S31AFE0097D9E100149001001C3FC00000817E3BE43D2000002C0B24
+S31AFE0097EE0000380000003BBE3BE4900936F47C7F1B78418200FE
+S31AFE009803187D635B7848000055801E3BE42C0000004082002C0D
+S31AFE009818813F00003C007D82913D000460001008901F000093B0
+S31AFE00982DFE3BE43860000348000971386000034800090180013A
+S31AFE009842001C7C0803A683A1000C83C1001083E100143821006F
+S31AFE009857184E8000209421FFF87C0802A69001000C3D20000020
+S31AFE00986C816936F42C0B0000408200183D20000080093BE43980
+S31AFE009881493BE47C0300004182000C3860000048000024800A8A
+S31AFE009896000491693BE490030000386000034800090138600084
+S31AFE0098AB0348000891386000018001000C7C0803A6382100080C
+S31AFE0098C04E8000203D20000080093BE43120FFFF7C6901104E09
+S31AFE0098D58000209421FFF87C0802A69001000C2C030000418273
+S31AFE0098EA00483D400000812A36F83929FFFF2C090000912A3641
+S31AFE0098FFF8418100683D20000039293200816900183800000003
+S31AFE009914900A36F8806B0000800B0014388000057C0803A64EB0
+S31AFE0099298000214800003C3D600000812B36F8392900012C09F1
+S31AFE00993E0001912B36F8408200243D2000003929320081690064
+S31AFE0099531838800004806B0000800B00147C0803A64E80002181
+S31AFE0099688001000C7C0803A6382100084E8000209421FFF87CB5
+S31AFE00997D0802A69001000C3D2000003929320081690018806BA6
+S31AFE0099920000800B00107C0803A64E8000218001000C7C0803F1
+S31AFE0099A7A6382100084E8000209421FFC87C0802A692C10010A7
+S31AFE0099BC92E10014930100189321001C934100209361002493F0
+S31AFE0099D181002893A1002C93C1003093E100349001003C2C044B
+S31AFE0099E6000D418201B43D600000814B36FC3D200001392997F1
+S31AFE0099FBD47C8951AE2C04000A394A0001914B36FC3F40000030
+S31AFE009A104182000C2C0A0064408201843D200000392932008319
+S31AFE009A25C900187EE000A67EE0BB7839600000516004207C00C8
+S31AFE009A3A01243D20FE013AC93E84807E0000813E000C3880004C
+S31AFE009A4F247D2803A63B6000003BE0004F4E800021807E00009A
+S31AFE009A64813E000C3880004F7D2803A64E800021801A36FC7C92
+S31AFE009A791B0000408000703D2000013D60FE013B0997D43B2B7A
+S31AFE009A8E3E847D38D8AE807E00005520E13E7F9900AE817E006B
+S31AFE009AA30C7F84E3787D6803A65529073E7FB948AE3B7B00010A
+S31AFE009AB84E800021807E0000813E000C7FA4EB787D2803A64EBB
+S31AFE009ACD800021801A36FC7F9FE214579F063E7C1B00007FBFF0
+S31AFE009AE2EA1457BF063E4180FFA8807E0000813E000C3880002A
+S31AFE009AF7237D2803A64E800021807E0000813E000C57E0E13ED7
+S31AFE009B0C7C9600AE7D2803A64E800021807E0000813E000C5723
+S31AFE009B21E0073E7C9600AE7D2803A64E800021807E0000813E4C
+S31AFE009B3600107D2803A64E8000215460063E2C00002B98610081
+S31AFE009B4B08418200383861000838800001480016492C030000CE
+S31AFE009B6040820014880100082C00002D4082FFC44BFFFED43D4E
+S31AFE009B752000003929320038000001900900443D600000392017
+S31AFE009B8A0000912B36FC7C0000A652E004207C0001248001003A
+S31AFE009B9F3C7C0803A682C1001082E10014830100188321001C1E
+S31AFE009BB483410020836100248381002883A1002C83C100308339
+S31AFE009BC9E10034382100384E8000209421FFE87C0802A693A1F3
+S31AFE009BDE000C93C1001093E100149001001C7CBF2B787FE0FB91
+S31AFE009BF3782C0000007C7D1B787C9E23783BFFFFFF4182002455
+S31AFE009C08889E00007FA3EB784BFFFDA17FE0FB782C0000003B77
+S31AFE009C1DDE00013BFFFFFF4082FFE48001001C7C0803A683A184
+S31AFE009C32000C83C1001083E10014382100184E8000209421FF2E
+S31AFE009C47E87C0802A693A1000C93C1001093E100149001001C17
+S31AFE009C5C7CBF2B787FE0FB782C0000007C7D1B787C9E23783B97
+S31AFE009C71FFFFFF418200247FA3EB784BFFFCFD7FE0FB782C0030
+S31AFE009C860000987E00003BDE00013BFFFFFF4082FFE480010037
+S31AFE009C9B1C7C0803A683A1000C83C1001083E1001438210018FA
+S31AFE009CB04E8000209421FF909081000C90A1001090C100149016
+S31AFE009CC5E100189101001C912100209141002438600000382126
+S31AFE009CDA00704E8000209421FFF87C0802A69001000C38600006
+S31AFE009CEF004BFFFBE93D600001380000207C0903A63D200000AD
+S31AFE009D0481493BF0396B23503D000000392000007C09502E7C25
+S31AFE009D1909592E392900044200FFF47D6A5B783D200000816905
+S31AFE009D2E3BF0800B0094900A0100812B0090912A0104800B00B0
+S31AFE009D4380900A0108812B0088912A010C800B008C900A011026
+S31AFE009D58812B0084912A01143D4000003D600000800B36F43DE6
+S31AFE009D6D2000012C00000039292350912A36F0418200183800C7
+S31AFE009D820000900836F4386000404BFFF9614BFFFACD386000E1
+S31AFE009D97404BFFF9554BFFFAC13D20000090693BF48001000CC4
+S31AFE009DAC7C0803A6382100084E8000209421FFF87C0802A690BA
+S31AFE009DC101000C380000207C0903A63D20000081493BF03D6007
+S31AFE009DD60001396B2350392000007C09582E7C09512E39290092
+S31AFE009DEB044200FFF47D6A5B783D20000081693BF0800A01006F
+S31AFE009E00900B0094812A0104912B0090800A0108900B008081EF
+S31AFE009E152A010C912B0088800A0110900B008C812A0114912B7B
+S31AFE009E2A0084386000014BFFFAA98001000C7C0803A638210002
+S31AFE009E3F084E800020386000004E8000203D20FE0139299E44EE
+S31AFE009E543D400000912A36CC3D60FE01396B9F8C3D2000009162
+S31AFE009E696936C83D40FE013D600000394A9CE0914B36D43D201E
+S31AFE009E7EFE0139299DB83D600000912B36D04E8000209421FF14
+S31AFE009E93F07C0802A693C1000893E1000C900100143D200000BC
+S31AFE009EA8800937002C000000408200C4380000019009370048DE
+S31AFE009EBD0060493D2000003BC93200813E00343860FFFF7D2822
+S31AFE009ED203A64E800021813E00347C7F1B783860FFFD7D280322
+S31AFE009EE7A64E800021815E00143D20FE0139299BD4912A0004EE
+S31AFE009EFC3D60FE016FE0FFFF396B9C446800FFFE3D20FE01918E
+S31AFE009F116A0008392999B03100FFFF7CE80110912A000C3D6012
+S31AFE009F26FE01301FFFFF7D00F910396B99783D20FE017CE040A3
+S31AFE009F3B39916A001039299CB4912A001441820014813E00347E
+S31AFE009F507FE3FB787D2803A64E800021801E0030386000007C04
+S31AFE009F650803A64E800021386000044BFFCE2D800100147C0849
+S31AFE009F7A03A683C1000883E1000C382100104E8000209421FF5E
+S31AFE009F8FF87C0802A69001000C3D20000039293200800900403E
+S31AFE009FA42C0000004182000C7C0803A64E8000218001000C7C84
+S31AFE009FB90803A6382100084E8000207FE000084E800020942185
+S31AFE009FCEFFD87C0802A6936100149381001893A1001C93C1009F
+S31AFE009FE32093E100249001002C7C9D23787C7C1B783800005425
+S31AFE009FF8981D00007F8326704BFFCE059C7D00017F83E3784B24
+S31AFE00A00DFFCDF97FBFEB789C7F0001380000749C1F00013920F7
+S31AFE00A02200689D3F0001380000729C1F0001392000659D3F00E0
+S31AFE00A03701380000619C1F0001392000643BA0003A9D3F00010B
+S31AFE00A04C9FBF000148000D01906100083BFF00017FE4FB783804
+S31AFE00A06161000838A0000438C000004BFFD2517C7F1B783B80F3
+S31AFE00A076003B9B9F0000386000044BFFCD859C7F000138600070
+S31AFE00A08B404BFFCD799C7F00019FBF0001386000404BFFF65108
+S31AFE00A0A03B61000C9061000C3BFF00017FE4FB787F63DB783884
+S31AFE00A0B5A0000438C000004BFFD2017C7F1B789B9F0000386079
+S31AFE00A0CA00004BFFCD399C7F0001386000014BFFCD2D9C7F0019
+S31AFE00A0DF019FBF0001386000014BFFF6059061000C3BFF0001F2
+S31AFE00A0F47FE4FB787F63DB7838A0000438C000004BFFD1B97C24
+S31AFE00A1097F1B7838000000981F00019B9F00008001002C7C08D0
+S31AFE00A11E03A6836100148381001883A1001C83C1002083E10063
+S31AFE00A13324382100284E8000202C030001418200202803000141
+S31AFE00A148418000502C030002418200242C030003418200304868
+S31AFE00A15D00003C3C0002004C00012C7C108BA64C00012C480078
+S31AFE00A17200283C0004004C00012C7C108BA64C00012C48000075
+S31AFE00A187143C000C004C00012C7C108BA64C00012C7C708AA698
+S31AFE00A19C54630FFE4E8000202C03000141820020280300014178
+S31AFE00A1B18000682C030002418200202C03000341820028480034
+S31AFE00A1C600543C0002007C0004AC7C188BA6480000443D6004D0
+S31AFE00A1DB007C0004AC7D788BA648000034380000807C0903A6B7
+S31AFE00A1F039200000612010003D600E007C0004AC7D398BA67D31
+S31AFE00A205788BA67C198BA67D788BA6392900104200FFE07C7824
+S31AFE00A21A8AA654630FFE4E8000203D60000038000001900B36A2
+S31AFE00A22FDC3D20FE013929A2F43D600000912B37043D400000D5
+S31AFE00A24448000098800A3BEC2800000340810030708000034021
+S31AFE00A259820028706000034082002080030000386300049004D7
+S31AFE00A26E0000812A3BEC388400043929FFFC4800005C3D6000A7
+S31AFE00A28300800B3BEC2800000140810034708000014082002C13
+S31AFE00A2987060000140820024A003000038630002B00400008181
+S31AFE00A2AD2B3BEC388400023929FFFE912B3BEC48000020880353
+S31AFE00A2C200003863000198040000812A3BEC388400013929FF5B
+S31AFE00A2D7FF912A3BEC800A3BEC2C0000004082FF643D2000002E
+S31AFE00A2EC38000000900936DC3D20000038000000900937044EBF
+S31AFE00A3018000209421FFE87C0802A69381000893A1000C93C12B
+S31AFE00A316001093E100149001001C7C601B787CBC2B787C83237D
+S31AFE00A32B783FA000007C040378939D3BEC4BFFFEED807D3BEC17
+S31AFE00A3407C63E0508001001C7C0803A68381000883A1000C836C
+S31AFE00A355C1001083E10014382100184E8000209421FFE87C0827
+S31AFE00A36A02A69381000893A1000C93C1001093E1001490010059
+S31AFE00A37F1C7CBC2B783FA00000939D3BEC4BFFFE99807D3BEC93
+S31AFE00A3947C63E0508001001C7C0803A68381000883A1000C8318
+S31AFE00A3A9C1001083E10014382100184E800020386000004E808D
+S31AFE00A3BE0020386000004E800020386000004E8000209421FFA6
+S31AFE00A3D3F07C0802A693C1000893E1000C900100143D20000077
+S31AFE00A3E880093BFC2C000000418200603FE000003BC000007DB6
+S31AFE00A3FD4000A67D40537839200000512004207C000124817F4A
+S31AFE00A4123BFC800B0014901F3BFC808B001893CB00187C000060
+S31AFE00A427A6514004207C000124812B000C80AB0010806B000042
+S31AFE00A43C7D2803A64E800021801F3BFC2C0000004082FFB080D7
+S31AFE00A4510100147C0803A683C1000883E1000C382100104E80BD
+S31AFE00A46600209421FFF87C0802A69001000C4BFFFF5D80010021
+S31AFE00A47B0C7C0803A6382100084E80002090690000380000000F
+S31AFE00A490900900149089000490A90010900900189128000090A6
+S31AFE00A4A5C9000890E9000C4E800020812300002C0900004182BE
+S31AFE00A4BA00F8810300043809FFFF28000039418100E83D60FE24
+S31AFE00A4CF01396B3E985400103A7D4B002E3D20FE0139293E98D1
+S31AFE00A4E47D4A4A147D4903A64E8004203D20FF0061290200A150
+S31AFE00A4F96900007C0006AC556B063E38000000600080007C001B
+S31AFE00A50E46307D600378540B043EB16900007C0006AC48000035
+S31AFE00A523903D20FF0061290240A16900007C0006AC556B063E2B
+S31AFE00A53838000000600080007C0046307D600378540B043EB156
+S31AFE00A54D6900007C0006AC4800005C3D20FF0061290220A169A8
+S31AFE00A56200007C0006AC556B063E38000000600080007C0046D4
+S31AFE00A577307D600378540B043EB16900007C0006AC48000028EA
+S31AFE00A58C3D20FF0061290940800900007C0006AC540004DE5545
+S31AFE00A5A10B68247C005B78900900007C0006AC800300003D2014
+S31AFE00A5B60000394933A85408103A7C0A402E3D20FE0039296078
+S31AFE00A5CBB47C004800418200187C0A402E3D20FE013929B218A8
+S31AFE00A5E07C0048004C820020800300083D6000007C0A412E8112
+S31AFE00A5F5430010396B34943D2000007D4B412E392935807C69FE
+S31AFE00A60A412E4E8000207C631B794D8200203803FFFF28000017
+S31AFE00A61F397C0803784D8100203D60FE01396B3F805500103A5E
+S31AFE00A6347D4B002E3D20FE0139293F807D4A4A147D4903A64EB8
+S31AFE00A6498004203D20FF0061290014816900007C0006AC3C0006
+S31AFE00A65E80007C0044307D6B0078916900007C0006AC4E80001D
+S31AFE00A673203D20FF0061290200A00900007C0006AC7000FFF789
+S31AFE00A6885400043EB00900007C0006AC4E8000203D20FF006191
+S31AFE00A69D290200A00900007C0006AC7000FFFB5400043EB009E9
+S31AFE00A6B200007C0006AC4E8000203D20FF0061290240A00900A2
+S31AFE00A6C7007C0006AC7000FFFB5400043EB00900007C0006AC65
+S31AFE00A6DC4E8000203D20FF0061290220A00900007C0006AC7028
+S31AFE00A6F100FFF75400043EB00900007C0006AC4E8000203D2092
+S31AFE00A706FF0061290220A00900007C0006AC7000FFFB540004F6
+S31AFE00A71B3EB00900007C0006AC4E8000203D20FF0061290940E3
+S31AFE00A730800900007C0006AC5400066E900900007C0006AC4E7C
+S31AFE00A7458000203D20FF0061290948816900007C0006AC394390
+S31AFE00A75AFFE53C0080007C0054307D6B0078916900007C00066A
+S31AFE00A76FAC4E8000207C631B794D8200203803FFFF280000393B
+S31AFE00A7847C0803784D8100203D60FE01396B40685500103A7DCB
+S31AFE00A7994B002E3D20FE01392940687D4A4A147D4903A64E8066
+S31AFE00A7AE04203D20FF0061290014816900007C0006AC3C0080A0
+S31AFE00A7C3007C0044307D6B0378916900007C0006AC4E80002014
+S31AFE00A7D83D20FF0061290200A00900007C0006AC60000008B091
+S31AFE00A7ED0900007C0006AC4E8000203D20FF0061290200A0099D
+S31AFE00A80200007C0006AC60000004B00900007C0006AC4E8000F6
+S31AFE00A817203D20FF0061290240A00900007C0006AC60000004A5
+S31AFE00A82CB00900007C0006AC4E8000203D20FF0061290220A096
+S31AFE00A8410900007C0006AC60000008B00900007C0006AC4E80AA
+S31AFE00A85600203D20FF0061290220A00900007C0006AC6000008A
+S31AFE00A86B04B00900007C0006AC4E8000203D20FF0061290940CC
+S31AFE00A880800900007C0006AC60000080900900007C0006AC4E13
+S31AFE00A8958000203D20FF0061290948816900007C0006AC39433F
+S31AFE00A8AAFFE53C0080007C0054307D6B0378916900007C000616
+S31AFE00A8BFAC4E8000207C631B794D8200203803FFFF28000039EA
+S31AFE00A8D47C0803784D8100203D60FE01396B41505500103A7D91
+S31AFE00A8E94B002E3D20FE01392941507D4A4A147D4903A64E802C
+S31AFE00A8FE04203D20FF0061290010816900007C0006AC3C008053
+S31AFE00A913007C0044307D6B0378916900007C0006AC4E800020C2
+S31AFE00A9283D20FF0061290200A00900007C0006AC60000080B0C7
+S31AFE00A93D0900007C0006AC4E8000203D20FF0061290200A0094B
+S31AFE00A95200007C0006AC60000040B00900007C0006AC4E800069
+S31AFE00A967203D20FF0061290240A00900007C0006AC60000080D8
+S31AFE00A97CB00900007C0006AC4E8000203D20FF0061290220A045
+S31AFE00A9910900007C0006AC60000080B00900007C0006AC4E80E1
+S31AFE00A9A600203D20FF0061290220A00900007C0006AC60000039
+S31AFE00A9BB40B00900007C0006AC4E8000203D20FF006129094C33
+S31AFE00A9D0816900007C0006AC3943FFE53C0080007C0054307DBD
+S31AFE00A9E56B0378916900007C0006AC4E8000207C8723787C63E0
+S31AFE00A9FA1B794D8200203803FFFF280000397C0803784D81005A
+S31AFE00AA0F203D60FE01396B42385500103A7D4B002E3D20FE0163
+S31AFE00AA24392942387D4A4A147D4903A64E8004203C0080007C7F
+S31AFE00AA390044303D60FF00616B0018808B00007C0006AC7C84D7
+S31AFE00AA4E00787CEAFE707D493A787D2950507D29FE707C8003D2
+S31AFE00AA63787C0048787C8948387D240378908B00007C0006AC3C
+S31AFE00AA784E8000207C8823787C631B794D8200203803FFFF2875
+S31AFE00AA8D0000394D8100203D60FE01396B43205400103A7D4B80
+S31AFE00AAA2002E3D20FE01392943207D4A4A147D4903A64E8004E6
+S31AFE00AAB7203D20FF0061290200A08900007C0006AC5484063E0B
+S31AFE00AACC38000000600080007C0046307C8003785404043EB0A6
+S31AFE00AAE18900007C0006AC4E8000203D20FF0061290240A08966
+S31AFE00AAF600007C0006AC5484063E38000000600080007C004623
+S31AFE00AB0B307C8003785404043EB08900007C0006AC4E8000209B
+S31AFE00AB203D20FF0061290220A08900007C0006AC5484063E3869
+S31AFE00AB35000000600080007C0046307C8003785404043EB089EB
+S31AFE00AB4A00007C0006AC4E8000203D20FF00612909408009001E
+S31AFE00AB5F007C0006AC540004DE550B68247C005B7890090000A5
+S31AFE00AB747C0006AC4E800020386000014E800020386000014E3E
+S31AFE00AB898000203D20000090693C044E8000209421FFF87C085F
+S31AFE00AB9E02A69001000C3D2000003D60000181493C04906B98C1
+S31AFE00ABB338814A0000388B98382C0A0000386000004182001052
+S31AFE00ABC8386000027D4803A64E8000218001000C7C0803A6388B
+S31AFE00ABDD2100084E8000209421FFF87C0802A69001000C3D2076
+S31AFE00ABF200013D600000814B3C049069983839099838908800AD
+S31AFE00AC070490A80008814A00002C0A00004082000C3860000089
+S31AFE00AC1C480000147D044378386000037D4803A64E800021800F
+S31AFE00AC3101000C7C0803A6382100084E8000209421FFF87C0851
+S31AFE00AC4602A69001000C3D2000013D600000814B3C0490699818
+S31AFE00AC5B383909983890880004814A00002C0A00004082000CAB
+S31AFE00AC7038600000480000147D044378386000047D4803A64E43
+S31AFE00AC858000218001000C7C0803A6382100084E800020942157
+S31AFE00AC9AFFF87C0802A69001000C3D2000013D600000814B3CDE
+S31AFE00ACAF0490699838390998389088000490A80008814A000086
+S31AFE00ACC42C0A00004082000C38600000480000147D044378380B
+S31AFE00ACD96000057D4803A64E8000218001000C7C0803A638218D
+S31AFE00ACEE00084E8000209421FFF87C0802A69001000C3D200085
+S31AFE00AD03013D600000814B3C0490699838390998389088000496
+S31AFE00AD1890A80008814A00002C0A00004082000C386000004833
+S31AFE00AD2D0000147D044378386000077D4803A64E800021800140
+S31AFE00AD42000C7C0803A6382100084E8000209421FFE87C08024E
+S31AFE00AD57A693E100149001001C3BE100087FE3FB784BFFFE3196
+S31AFE00AD6C2C0300004082000C3860000048000008A07F00068044
+S31AFE00AD8101001C7C0803A683E10014382100184E8000209421E3
+S31AFE00AD96FFF87C0802A69001000C4BFFB3F98001000C7C0803DA
+S31AFE00ADABA6382100084E8000203C00FE00600001007C0903A6D1
+S31AFE00ADC04E8004209421FFF87C0802A69001000C4BFFFFE538AD
+S31AFE00ADD56000008001000C7C0803A6382100084E800020386064
+S31AFE00ADEA00004E8000209421FFE87C0802A693A1000C93C10006
+S31AFE00ADFF1093E100149001001C7C7F1B78386000003BA00001F4
+S31AFE00AE14380000002C1FFFFE41820040418100102C1FFFFD4148
+S31AFE00AE2982004C480000502C1FFFFF408200483D200000812950
+S31AFE00AE3E37082C0900003BA9FFFF4181003C7D3D4B7840820068
+S31AFE00AE53343BA0FFFD4800002C3D200000392932003D600000D9
+S31AFE00AE689069001893EB3708480000143BE00000480000083B01
+S31AFE00AE7DFF0001380000012C000000418200803D2000003BC9B3
+S31AFE00AE923200813E00182C09000041820018806900008009001C
+S31AFE00AEA714388000047C0803A64E8000213D200001392998440A
+S31AFE00AEBC57E028347C004A143D2000002C030000901E0018932B
+S31AFE00AED1E93708813E00184182001C806900008009001438804C
+S31AFE00AEE600057C0803A64E800021480000188069000080090060
+S31AFE00AEFB14388000047C0803A64E8000217FA3EB788001001C30
+S31AFE00AF107C0803A683A1000C83C1001083E10014382100184E40
+S31AFE00AF2580002039400001380000002C03FFFE418200404181D0
+S31AFE00AF3A00102C03FFFD4182004C480000502C03FFFF4082002D
+S31AFE00AF4F483D2000008129370C2C0900003949FFFF4181003CA4
+S31AFE00AF647D2A4B78408200343940FFFD4800002C3D20000039F5
+S31AFE00AF792932003D60000090090014906B370C480000143860E8
+S31AFE00AF8E00004800000838630001380000012C00000041820096
+S31AFE00AFA3283D20000139299844546028343D6000007C004A144A
+S31AFE00AFB8396B32003D200000900B00149069370C7D4353784E89
+S31AFE00AFCD8000204E8000204E8000204E8000209421FFE87C08E1
+S31AFE00AFE202A693E100149001001C3D200000392932008169009E
+S31AFE00AFF7183800000090010008812B0000800B00187C651B7895
+S31AFE00B00C7C8623787D234B78388100087C0803A64E80002180CE
+S31AFE00B0210100087C7F1B782C000000418200103D20000080693A
+S31AFE00B0363C08480001997FE3FB788001001C7C0803A683E100D8
+S31AFE00B04B14382100184E8000209421FFE87C0802A693A1000C71
+S31AFE00B06093C1001093E100149001001C380000407C0903A63D5B
+S31AFE00B0752000003D60FE0139293200396BADE8394000007D69DA
+S31AFE00B08A512E394A00044200FFF83D2000013D60FE013929987A
+S31AFE00B09F44396BADE839000000550A28343808000139000008A5
+S31AFE00B0B47D0903A67D69512E394A00044200FFF87C0803782C04
+S31AFE00B0C90800024081FFDC3FA0000038000013901D32003D6022
+S31AFE00B0DE00003BBD3200396B33A8917D00043D200000392930AF
+S31AFE00B0F3003D60FE01913D0008396BADB4917D00403D20FE0123
+S31AFE00B1083929ADC43D60FE01913D0010396BAD94917D00483D69
+S31AFE00B11D20FE013929ADF03D60FE01913D0030396BAF283D4069
+S31AFE00B132FE01917D0034394AAFD03D20FE01915D00203929AF46
+S31AFE00B147D4913D001C3860FFFE4BFFFCA13860FFFE4BFFFDD108
+S31AFE00B15C38000000901D0024901D0028901D004C901D004438DA
+S31AFE00B1717D003C4BFFFA193D20FE01392997C8913D008C8001B7
+S31AFE00B186001C7C0803A683A1000C83C1001083E1001438210012
+S31AFE00B19B184E8000207C842379418200243884FFFF7C0320AE0B
+S31AFE00B1B02C0000034082000C386000014E8000202C0400004092
+S31AFE00B1C582FFE4386000004E8000209421FFF87C0802A690011D
+S31AFE00B1DA000C7C631B793D20FE013809B2084182000880030038
+S31AFE00B1EF943D200000392932008129008C7C0303787D2803A644
+S31AFE00B2044E8000218001000C7C0803A6382100084E80002094A5
+S31AFE00B21921FFF07C0802A693C1000893E1000C900100143D2002
+S31AFE00B22E0000800932007C7F1B782C000014396932007C9E236D
+S31AFE00B243783860FFFF4082001C812B001838800006806900009B
+S31AFE00B258800900147C0803A64E8000217C1F18004082001C7F14
+S31AFE00B26DE3FB787FC4F3784BFFFD697C601B797C0303784082E8
+S31AFE00B28200287FE3FB787FC4F3784BFFAE257C601B787C09FEF9
+S31AFE00B297707D2302787C6348507C63FE707C03183880010014EC
+S31AFE00B2AC7C0803A683C1000883E1000C382100104E8000202821
+S31AFE00B2C10500037C691B78408100107C801B78700B0003418253
+S31AFE00B2D600302C05000038A5FFFF4D820020880400002C050077
+S31AFE00B2EB0098090000388400013929000138A5FFFF4082FFE805
+S31AFE00B3004E8000202805000F7C6B1B78408100388004000038DB
+S31AFE00B315A5FFF0900B0000852400042805000F952B00048404BB
+S31AFE00B32A0004940B000485240004952B000438840004396B008E
+S31AFE00B33F044181FFD028050003408100208004000038A5FFFCF3
+S31AFE00B35428050003900B000038840004396B00044181FFE82CD8
+S31AFE00B3690500007D695B7838A5FFFF4D820020880400002C0586
+S31AFE00B37E000098090000388400013929000138A5FFFF4082FF59
+S31AFE00B393E84E800020280500037C691B784081000C7060000383
+S31AFE00B3A8418200282C05000038A5FFFF4D8200202C05000098DD
+S31AFE00B3BD8900003929000138A5FFFF4082FFF04E800020548439
+S31AFE00B3D2063E5480402E7C0023785409801E7C004B787C6B1B89
+S31AFE00B3E7782805000F40810024900B0000940B000438A5FFF0AA
+S31AFE00B3FC940B00042805000F940B0004396B00044181FFE42841
+S31AFE00B4110500034081001838A5FFFC28050003900B0000396BFA
+S31AFE00B42600044181FFF02C0500007D695B784D8200207CA90357
+S31AFE00B43BA698890000392900014200FFF84E8000209421FFA84B
+S31AFE00B4507C631B79394100087D47537839000000408200143818
+S31AFE00B4650000309801000839410009480000247C032B967D2031
+S31AFE00B47A29D67D2918507D6648AE7C030379996A0000394A0052
+S31AFE00B48F014082FFE47C0A3800418200287D0343787CE93B7802
+S31AFE00B4A48C0AFFFF386300017C0A4800980400003884000140F8
+S31AFE00B4B982FFEC7C681B7838000000980400007D03437838212E
+S31AFE00B4CE00584E8000209421FF987C0802A67D800026924100B1
+S31AFE00B4E330926100349281003892A1003C92C1004092E10044F5
+S31AFE00B4F8930100489321004C93410050936100549381005893F4
+S31AFE00B50DA1005C93C1006093E100649001006C9181002C7C994C
+S31AFE00B52223788BB900003AE100082C1D00007EF2BB787C7B1B10
+S31AFE00B537787CB82B783BC000003AA000003B390001418204801B
+S31AFE00B54C2C1D00254082043C8BB900003B3900012C1D002D3A0D
+S31AFE00B561C000003BE00000408200108BB900003B3900013AC071
+S31AFE00B57600012C1D0030408200148BB900003B8000013B3900F8
+S31AFE00B58B01480000083B800000381DFFD0280000094181003C48
+S31AFE00B5A07FA3EB787F24CB787FE9FB781D29000A3929FFD07D4E
+S31AFE00B5B5291A1488640000388400013803FFD028000009408181
+S31AFE00B5CAFFE47D3F4B787C9923787C7D1B782C1D002E40820091
+S31AFE00B5DF3C8BB900003B390001381DFFD0280000093B9C000131
+S31AFE00B5F4418100247F24CB7888640000388400013803FFD02897
+S31AFE00B6090000094081FFF07C7D1B787C9923782C1D006C3A80C4
+S31AFE00B61E00004082000C8BB900003B390001381DFFA828000068
+S31AFE00B633203A790001418101F83D60FE01396B44405400103A0D
+S31AFE00B6487D4B002E3D20FE01392944407D4A4A147D4903A64ECF
+S31AFE00B65D800420386000307F6803A63B8000013BE000084E802B
+S31AFE00B6720021386000787F6803A64E800021897800005569064A
+S31AFE00B6873E38090001280000084181001C801800085529103AB4
+S31AFE00B69C396B00017C604A1499780000480000302809000741B4
+S31AFE00B6B181001C807800043800000839230004981800009138CE
+S31AFE00B6C60004480000108078000438030004901800042C1D00DF
+S31AFE00B6DB648063000041820028418100102C1D00584182004CA2
+S31AFE00B6F0480000602C1D0070418200342C1D00784182002C48F1
+S31AFE00B70500004C2C0300004080000C3A80002D7C6300D03CC052
+S31AFE00B71AFE0138C644083881000838A0000A480000203CC0FEC8
+S31AFE00B72F0138C644144800000C3CC0FE0138C644283881000830
+S31AFE00B74438A000104BFFFD057C751B787E579378480000EC8997
+S31AFE00B7597800005569063E38090001280000084181001C801875
+S31AFE00B76E00085529103A396B00017C604A1499780000480000BA
+S31AFE00B78330280900074181001C807800043800000839230004CB
+S31AFE00B798981800009138000448000010807800043803000490F8
+S31AFE00B7AD18000482E300007EE3BB78480003C97C751B7848008E
+S31AFE00B7C20080897800005569063E3809000128000008418100B7
+S31AFE00B7D71C801800085529103A396B00017D404A149978000004
+S31AFE00B7EC48000030280900074181001C81580004380000083960
+S31AFE00B8012A000498180000913800044800001081580004380A0C
+S31AFE00B816000490180004886A00037F6803A63BDE00014E8000FC
+S31AFE00B82B214800018C3860003F7F6803A63BDE00014E8000219E
+S31AFE00B8407F55F8503134FFFF7D294910381AFFFF7C0048782FB6
+S31AFE00B8559C00007F4948387D3A03782C140000419E00243BA0A6
+S31AFE00B86A0030418200207E83A3787F6803A63BDE00013A800032
+S31AFE00B87F004E800021480000083BA000202C1400002E160000F2
+S31AFE00B8943AD5FFFF7F8000264092003C7F40D3782C0000003BEA
+S31AFE00B8A95AFFFF4081002C7F5FD3787FA3EB787F6803A63BDEEA
+S31AFE00B8BE00014E8000217FE0FB782C0000003BFFFFFF4181FF8A
+S31AFE00B8D3E47FFAFB787F880120418200147E83A3787F6803A6E1
+S31AFE00B8E83BDE00014E8000217EA0AB782C0000007ED5B3784013
+S31AFE00B8FD8100547EBDAB787EFCBB788BFC00007F6803A67FE3D9
+S31AFE00B912FB783B9C00013BDE00014E8000212C1F000A408200B1
+S31AFE00B927143860000D7F6803A63BDE00014E8000217FA0EB7833
+S31AFE00B93C2C0000003BBDFFFF4181FFC47F97E3787FB5EB784102
+S31AFE00B9519200687F40D3782C0000003B5AFFFF408100587F5F23
+S31AFE00B966D378386000207F6803A63BDE00014E8000217FE0FBD2
+S31AFE00B97B782C0000003BFFFFFF4181FFE4480000307FA3EB7835
+S31AFE00B9907F6803A63BDE00013A7900014E8000212C1D000A40BE
+S31AFE00B9A58200143860000D7F6803A63BDE00014E8000218BB971
+S31AFE00B9BA00007E799B782C1D00004082FB887FC3F378800100AE
+S31AFE00B9CF6C8181002C7C0803A682410030826100348281003853
+S31AFE00B9E482A1003C82C1004082E10044830100488321004C8382
+S31AFE00B9F9410050836100548381005883A1005C83C1006083E188
+S31AFE00BA0E00647D808120382100684E8000203D20000081693CEB
+S31AFE00BA230C38000000986B0000396B000191693C0C980B000039
+S31AFE00BA384E8000209421FF707C0802A693A1008493C100889390
+S31AFE00BA4DE1008C900100943D60000090A10010906B3C0C38A154
+S31AFE00BA6200083BA1009838000002396000003C60FE0190A100B0
+S31AFE00BA77789081000C90C1001490E100189101001C91210020B3
+S31AFE00BA8C91410024980100709961007193A100743863BA1C38E6
+S31AFE00BAA1A100704BFFFA31800100947C0803A683A1008483C1D8
+S31AFE00BAB6008883E1008C382100904E8000209421FF707C08027E
+S31AFE00BACBA693A1008493C1008893E1008C9001009490A10010C2
+S31AFE00BAE09081000C7C641B789061000838A100083BA100983837
+S31AFE00BAF5000001396000003C60FE0190A1007890C1001490E184
+S31AFE00BB0A00189101001C91210020914100249801007099610091
+S31AFE00BB1F7193A100743863BD7838A100704BFFF9A980010094DA
+S31AFE00BB347C0803A683A1008483C1008883E1008C382100904E30
+S31AFE00BB498000209421FFF87C0802A69001000C7C601B787C855E
+S31AFE00BB5E23783C60FE013863BD787C0403784BFFF969800100A0
+S31AFE00BB730C7C0803A6382100084E80002088030000392000004D
+S31AFE00BB884800000C88030000392900012C00000038630001405A
+S31AFE00BB9D82FFF07D234B784E8000207C691B78480000102C03CE
+S31AFE00BBB20000386000004D8200208869000088040000388400BA
+S31AFE00BBC7017C030000392900014182FFE07C6018504E800020AE
+S31AFE00BBDC880400007C691B784800001098030000880400003895
+S31AFE00BBF16300012C000000388400014082FFEC3800000098036E
+S31AFE00BC0600007D234B784E8000207C6B1B78480000102C0300D3
+S31AFE00BC1B00386000004D820020886B0000396B00013803FFBFF8
+S31AFE00BC30280000194181000C380300205403063E892400003811
+S31AFE00BC458400013809FFBF280000194181000C38090020540995
+S31AFE00BC5A063E7D204B787C0300004182FFB47C6018504E800026
+S31AFE00BC6F207CA02B797C691B787C0903A64082001438600000C8
+S31AFE00BC844E8000207C6018504E800020886900008804000038D2
+S31AFE00BC998400017C030000392900014082FFE42C030000418294
+S31AFE00BCAE00084200FFE0386000004E8000207CA02B797C6B1B0C
+S31AFE00BCC3787C0903A640820018386000004E8000207C6018501E
+S31AFE00BCD84E80002042400050886B0000396B00013803FFBF28DA
+S31AFE00BCED0000194181000C380300205403063E892400003884F8
+S31AFE00BD0200013809FFBF280000194181000C3809002054090655
+S31AFE00BD173E7D204B787C0300004082FFB42C0300004082FFB4DD
+S31AFE00BD2C386000004E8000204800002C89230000880400003894
+S31AFE00BD418400017C09000038630001418200148803FFFF8864F7
+S31AFE00BD56FFFF7C6300504E8000207CA02B782C00000038A5FFF2
+S31AFE00BD6BFF4082FFCC386000004E8000209421FFE87C0802A6E5
+S31AFE00BD809381000893A1000C93C1001093E100149001001C3D78
+S31AFE00BD9520000080093B587C7D1B782C000000408200743D200E
+S31AFE00BDAA000039293200800900343860FFFF7C0803A67D3E4B66
+S31AFE00BDBF783BE000004E8000217C7C1B78813E00347FE3FB7896
+S31AFE00BDD47D2803A64E800021813E00147FA4EB78806900008057
+S31AFE00BDE909000C7C0803A64E80002137FF00014081FFD43D20E8
+S31AFE00BDFE000039293200800900347F83E3787C0803A64E800083
+S31AFE00BE1321480000483D20000039293200816900142C0B00003F
+S31AFE00BE284182001C806B0000800B000C7FA4EB787C0803A64E9F
+S31AFE00BE3D8000214800001C816900187FA4EB78806B0000800BE9
+S31AFE00BE52000C7C0803A64E8000218001001C7C0803A6838100E1
+S31AFE00BE670883A1000C83C1001083E10014382100184E8000205F
+S31AFE00BE7C9421FFF07C0802A693E1000C900100143D2000003922
+S31AFE00BE91293200816900147C7F1B782C0B0000408200088169C6
+S31AFE00BEA60018806B0000800B00107C0803A64E800021987F00B2
+S31AFE00BEBB00800100147C0803A683E1000C382100104E800020E5
+S31AFE00BED09421FFE07C0802A69361000C9381001093A10014939A
+S31AFE00BEE5C1001893E1001C900100243D20000080093B587C7DB4
+S31AFE00BEFA1B782C000000408200883D20000039293200800900AC
+S31AFE00BF0F343860FFFF7C0803A67D3C4B783BE000004E8000219C
+S31AFE00BF247C7B1B78813C00347FE3FB787D2803A64E80002181F6
+S31AFE00BF397C00147FA4EB78806B0000800B001C7C0803A64E804C
+S31AFE00BF4E00217C7E1B7941820010881D00002C000000408200C5
+S31AFE00BF634C37FF00014081FFC03D200000392932008009003414
+S31AFE00BF787F63DB787C0803A64E800021480000643D200000391D
+S31AFE00BF8D293200816900142C0B000041820034806B0000800B9E
+S31AFE00BFA2001C7FA4EB7848000034817C00307FE3FB787D68037E
+S31AFE00BFB7A63D2000003800000190093B584E80002148000020B2
+S31AFE00BFCC816900187FA4EB78806B0000800B001C7C0803A64EC7
+S31AFE00BFE18000217C7E1B787FC3F378800100247C0803A68361B6
+S31AFE00BFF6000C8381001083A1001483C1001883E1001C382100A5
+S31AFE00C00B204E8000209421FFE87C0802A69381000893A1000CEA
+S31AFE00C02093C1001093E100149001001C3D20000080093B587C79
+S31AFE00C0357D1B782C000000408200803D200000392932008009FA
+S31AFE00C04A00343860FFFF7C0803A67D3E4B783BE000004E80007F
+S31AFE00C05F217C7C1B78813E00347FE3FB787D2803A64E80002117
+S31AFE00C074813E00142C0900004182001C8069000080090014380E
+S31AFE00C0898000077FA5EB787C0803A64E80002137FF000140817C
+S31AFE00C09EFFC83D20000039293200800900347F83E3787C080330
+S31AFE00C0B3A64E800021480000303D2000003929320081290014B8
+S31AFE00C0C82C0900004182001C8069000080090014388000077F87
+S31AFE00C0DDA5EB787C0803A64E8000213D2000003929320081298B
+S31AFE00C0F200182C0900004182001C80690000800900147FA5EB74
+S31AFE00C10778388000077C0803A64E8000218001001C7C0803A602
+S31AFE00C11C8381000883A1000C83C1001083E10014382100184E43
+S31AFE00C1318000209421FFD07C0802A69301001093210014934165
+S31AFE00C14600189361001C9381002093A1002493C1002893E1003C
+S31AFE00C15B2C900100347C7D1B787CBE2B787FBFEB783B60000035
+S31AFE00C1703F2000003F8000003B40000081393B802C0900004132
+S31AFE00C185820020896900002C0B000041820014380900019961C3
+S31AFE00C19A000890193B80480000647FC0FE707C1E005054000F7A
+S31AFE00C1AFFE7FE9EA78216900007D2B49147C0B48394182003C19
+S31AFE00C1C4386000324BFFFE49480000083BDEFFCE2C1E00004047
+S31AFE00C1D9810014386100084BFFFCF17C7B1B794182FFE82C1B64
+S31AFE00C1EE0000408200143860FFFF48000180386100084BFFFC1C
+S31AFE00C2037D880100089B5F00007C0303785400063E2C00000D4F
+S31AFE00C2184182007C418100282C000008418200D4418100102C1B
+S31AFE00C22D00000341820038480001142C00000A41820058480004
+S31AFE00C24201082C00002B418200E8418100102C000024418200F3
+S31AFE00C257DC480000F02C00007F41820098480000E47C1FE80005
+S31AFE00C26C408200183C60FE01386344C84BFFF84D3860FFFE4831
+S31AFE00C2810000F8987F00003BFF00013F000000480000DC89214D
+S31AFE00C29600083F0000002C09000A40820010881837102C000024
+S31AFE00C2AB0D418200182C09000D40820018881837102C00000A59
+S31AFE00C2C04082000C9B410008480000A4801C3B782C000000410B
+S31AFE00C2D58200143860000D4BFFFA9D3860000A4BFFFA95880130
+S31AFE00C2EA00083860000198183710480000847C1FE8003F000015
+S31AFE00C2FF004182006C801C3B782C0000004182001C38600008FD
+S31AFE00C3144BFFFA65386000204BFFFA5D386000084BFFFA553B9A
+S31AFE00C329FFFFFF480000407C1FE800408200145463063E4BFFD8
+S31AFE00C33EC3293860000048000034801C3B782C000000418200A8
+S31AFE00C3530C886100084BFFFA21880100083F000000981F0000E8
+S31AFE00C3683BFF000188010008981837104BFFFE08800100347C78
+S31AFE00C37D0803A68301001083210014834100188361001C8381CA
+S31AFE00C392002083A1002483C1002883E1002C382100304E8000D7
+S31AFE00C3A7209421FFC07C0802A6924100089261000C92810010C0
+S31AFE00C3BC92A1001492C1001892E1001C93010020932100249308
+S31AFE00C3D14100289361002C9381003093A1003493C1003893E11E
+S31AFE00C3E6003C900100447C9D23787C7C1B787D3DE0107D294955
+S31AFE00C3FB107D294BB87C1CE8507C0048787FA948387D3D037986
+S31AFE00C4107CB62B78408101403E40FE012C16000041820014386E
+S31AFE00C4257244CC7C96E0504BFFF69948000010387244CC7F844C
+S31AFE00C43AE3784BFFF6897FBEEB787F9DE3783BE000003E80FED7
+S31AFE00C44F013EA0FE013E60FE013B5EFFF03AFD00103F00FE014C
+S31AFE00C4643F60FE013F20FE017C1FF000408000147C9DF8AE386D
+S31AFE00C4797844D84BFFF6494800000C387944E04BFFF63D7FFC6C
+S31AFE00C48EFE707C1CF8507C000E707C0002147C00F8502C0000CB
+S31AFE00C4A3014082000C387B44E44BFFF61957801F7E7C1F021458
+S31AFE00C4B87C001E70540018387C00F8502C0000074082000C38C0
+S31AFE00C4CD7B44E44BFFF5F53BFF00012C1F000F4081FF907FBC5F
+S31AFE00C4E2EB787FDDF378387444E84BFFF5D97EBEAB783BE000AD
+S31AFE00C4F7007C1FE8004080002C7C9CF8AE3804FFE02000005E66
+S31AFE00C50C7C0001107C0003B87C0900F87C8000387129002E7C5D
+S31AFE00C521044B784800000838800020387E44EC4BFFF5953BFF1E
+S31AFE00C53600012C1F000F4081FFBC387344F04BFFF5817F5DD3C7
+S31AFE00C54B797EFCBB784181FECC800100447C0803A68241000868
+S31AFE00C5608261000C8281001082A1001482C1001882E1001C832C
+S31AFE00C57501002083210024834100288361002C8381003083A170
+S31AFE00C58A003483C1003883E1003C382100404E8000209421FF0D
+S31AFE00C59FF87C0802A69001000C38A000004BFFFDFD8001000C19
+S31AFE00C5B47C0803A6382100084E8000209421FF607C0802A6931F
+S31AFE00C5C961008C9381009093A1009493C1009893E1009C900173
+S31AFE00C5DE00A49081000C388100A83FA000003B80000038000050
+S31AFE00C5F3013961000890810074837D3B809061000890A1001012
+S31AFE00C60890C1001490E100189101001C9121002091410024981D
+S31AFE00C61D010070916100789B810071388100704BFFF5213C6077
+S31AFE00C632FE01386344F44BFFF48D939D3B803861008038800096
+S31AFE00C6470838A000004BFFFAE988610080937D3B806860005978
+S31AFE00C65C212000007C09011468630079212300007C6919147CD4
+S31AFE00C671630378800100A47C0803A68361008C8381009083A158
+S31AFE00C686009483C1009883E1009C382100A04E8000209421FF90
+S31AFE00C69BE87C0802A69381000893A1000C93C1001093E100142A
+S31AFE00C6B09001001C7C9C23787CBD2B787C7F1B783BC000004864
+S31AFE00C6C50000C857C0103A7FFD012E881F00003BDE000148007F
+S31AFE00C6DA0098881F00002C0000224082008457C0103A7D60EA4C
+S31AFE00C6EF14812BFFFC7C09F8004082000C3BFF000193EBFFFC78
+S31AFE00C704893F0000692000227C0000D07D2900D055290FFE5408
+S31AFE00C719000FFE7D2B00394182002C7FE3FB788D23000169201B
+S31AFE00C72E00227C0000D07D2900D055290FFE54000FFE7D2B007A
+S31AFE00C743394082FFE47C7F1B78881F00002C0000004082002CB0
+S31AFE00C7583C60FE013863450C4BFFF365480000083BFF0001888C
+S31AFE00C76D1F00002C0000004182004C2C0000204082FF603800B4
+S31AFE00C7820000981F00003BFF0001881F00002C00000041820016
+S31AFE00C7972C2C000020408200187FE3FB788C0300012C00002086
+S31AFE00C7AC4182FFF87C7F1B78881F00002C0000004082FF0C3C50
+S31AFE00C7C16000003C80000080BD000093DC0000386339F838840F
+S31AFE00C7D63A68480000258001001C7C0803A68381000883A10041
+S31AFE00C7EB0C83C1001083E10014382100184E8000209421FFD872
+S31AFE00C8007C0802A6930100089321000C93410010936100149318
+S31AFE00C81581001893A1001C93C1002093E100249001002C7C7F5D
+S31AFE00C82A1B787CBC2B787C9A23787F83E3784BFFF3497FFDFB7C
+S31AFE00C83F787C1DD0007C7B1B78418200C0809D00007F83E37878
+S31AFE00C8547F65DB784BFFF4652C0300004082009C807D00004B1C
+S31AFE00C869FFF3197C03D800408100847C1FD0003BC000014182E5
+S31AFE00C87E00603F00FE013F20FE017C1DF80041820044809F00EE
+S31AFE00C893007F83E3787F65DB784BFFF4212C0300004082002C7C
+S31AFE00C8A82C1E00004182001880BD0000387845207F84E3784B57
+S31AFE00C8BDFFF2093BC00000809F0000387945484BFFF1F93BFFA2
+S31AFE00C8D200107C1FD0004082FFB02C1E0000408200143C60FEA7
+S31AFE00C8E7013863454C4BFFF1D9480000187FA3EB7848000014B6
+S31AFE00C8FC3BBD00107C1DD0004082FF48386000008001002C7CE8
+S31AFE00C9110803A6830100088321000C8341001083610014838150
+S31AFE00C926001883A1001C83C1002083E10024382100284E800065
+S31AFE00C93B209421FFE87C0802A69381000893A1000C93C100103B
+S31AFE00C95093E100149001001C7C601B783C60FE017C9D23787C5F
+S31AFE00C9651F03787CBE2B78386345504BFFF1557C1FE80041823C
+S31AFE00C97A00283F80FE0180BF000080DF0008387C45587FC4F391
+S31AFE00C98F784BFFF1353BFF00107C1FE8004082FFE48001001C98
+S31AFE00C9A47C0803A68381000883A1000C83C1001083E10014380D
+S31AFE00C9B92100184E800020912300149883000090A3000490C3D1
+S31AFE00C9CE000890E3000C910300104E8000209421FFB07C08024D
+S31AFE00C9E3A691C1000891E1000C92010010922100149241001868
+S31AFE00C9F89261001C9281002092A1002492C1002892E1002C93E0
+S31AFE00CA0D01003093210034934100389361003C9381004093A133
+S31AFE00CA22004493C1004893E1004C900100547D344B787D16432C
+S31AFE00CA37783016FFFF7D20B1106A800001216000007C0B0114C4
+S31AFE00CA4C7D2B00397C701B787C9823787CD133787CF53B787D29
+S31AFE00CA615353783B4000013A40000041820008925600007C1267
+S31AFE00CA76A8007E3F8B78408000507EA903A67FEBFB7839000049
+S31AFE00CA8B00812B00102C0900004182000891090000814B00046C
+S31AFE00CAA02C0A000040820020800B00082C0000004182000C2CAB
+S31AFE00CAB50000024082000C812B000C91490000396B0018420008
+S31AFE00CACAFFC47CBD2B787C1D8000408002043DC0FE013DE0FEBE
+S31AFE00CADF0157BE103A7C9EC02E880400002C00002D4082014CE2
+S31AFE00CAF4396000007C0BA8008AE400017E3F8B78392000003B9E
+S31AFE00CB097D0001408001147F9EC2143B200001881F00007C1737
+S31AFE00CB1E0000408200F0813F00102C09000041820020800900DB
+S31AFE00CB33002C00000041820014809F0014386E45644BFFEF81AA
+S31AFE00CB483B400000801F00042C00000041820080813C00008802
+S31AFE00CB5D0900023BC900032C00003D4182000C83DC00043BBD1A
+S31AFE00CB720001801F00082C000000418200102C00000141820013
+S31AFE00CB873C48000040809F000C7FC3F37838A0000038C0000029
+S31AFE00CB9C480001992C0300004082002480BF00147FC4F3783850
+S31AFE00CBB16F45844BFFEF113B4000004800000C813F000C93C9F2
+S31AFE00CBC60000813F00103B7D000148000034801F00082C00007E
+S31AFE00CBDB00418200102C0000024182001C48000020817F000CED
+S31AFE00CBF0812B000039290001912B00004800000C813F000C93AE
+S31AFE00CC052900003960000148000014392900017C09A8003BFF2D
+S31AFE00CC1A00184180FEFC2C0B0000408200A83C60FE0138634512
+S31AFE00CC2FAC7EE4BB784BFFEE91480000902C160000418200788D
+S31AFE00CC442C12000041820014386E45647E649B784BFFEE713B9A
+S31AFE00CC594000002C140000418200102C1400014182003C4800E7
+S31AFE00CC6E00407C7EC02E7EC4B37838A0000038C0000048000000
+S31AFE00CC83B52C030000408200247C9EC02E386F45847E659B7860
+S31AFE00CC984BFFEE2D3B4000004800000C7C1EC02E901600003BE6
+S31AFE00CCAD7D00013A400001480000183C60FE01386345CC3B7D16
+S31AFE00CCC200014BFFEE013B4000007F7DDB787C1D80004180FE7D
+S31AFE00CCD70C7F43D378800100547C0803A681C1000881E1000C71
+S31AFE00CCEC8201001082210014824100188261001C828100208266
+S31AFE00CD01A1002482C1002882E1002C830100308321003483410A
+S31AFE00CD1600388361003C8381004083A1004483C1004883E10010
+S31AFE00CD2B4C382100504E8000208803000038E000012C0000201C
+S31AFE00CD403900000A39800000408200108C0300012C00002041EF
+S31AFE00CD5582FFF8880300002C0000004182012C2C0700004182AF
+S31AFE00CD6A0038880300002C0000304082002C892300013809FFB6
+S31AFE00CD7FBF280000194181000C380900205409063E2C0900781E
+S31AFE00CD944082000C39000010386300028943000038E0000039B5
+S31AFE00CDA92AFFD0380AFFBF21290009392000007D2949142000A9
+S31AFE00CDBE0005380000007C0001147D2B03793863000139200075
+S31AFE00CDD30040820010380AFF9F28000005418100083920000144
+S31AFE00CDE82C09000041820068392AFFD05520063E280000094175
+S31AFE00CDFD81000C7D2B4B7848000030380AFF9F280000054181DE
+S31AFE00CE12000C396AFFA94800001C380AFFBF200000057C0001AA
+S31AFE00CE27107C0003B8392AFFC97C0B48387C0B40004080001CD6
+S31AFE00CE3C880300007D2C41D62C0000007D895A144082FF1848D1
+S31AFE00CE5100003C2C0600004182002C88060000480000088C06FB
+S31AFE00CE6600012C000000418200187C0A00004082FFF0880600E6
+S31AFE00CE7B002C0000004082000C386000004E8000202C050000ED
+S31AFE00CE90918400004182000890650000386000014E80002088A5
+S31AFE00CEA50300002C000020408200108C0300012C0000204182B4
+S31AFE00CEBAFFF88863000068690074200900007D2049146860004D
+S31AFE00CECF54214000007C0A01147D2B03794182001038000001CA
+S31AFE00CEE4900400004800003068690046200900007D2049146887
+S31AFE00CEF9600066214000007C0A01147C0A4B794082000C3860AE
+S31AFE00CF0E00004E80002091640000386000014E8000209421FFEC
+S31AFE00CF23E07C0802A69361000C9381001093A1001493C1001811
+S31AFE00CF3893E1001C900100243D200001396998D0800BFFD47C59
+S31AFE00CF4D9C23782C0000007CDB33784182000C3800000A48000D
+S31AFE00CF62012838000001B00998D088030000396B00022C0000D6
+S31AFE00CF77002F85000041820018980B00008C030001396B00013A
+S31AFE00CF8C2C0000004082FFF038000000980B0000396B000140EF
+S31AFE00CFA19E00103D20FE01386946004800001C2C05000141822D
+S31AFE00CFB6000C3800000A480000CC3D20FE013869460C88030026
+S31AFE00CFCB002C00000041820018980B00008C030001396B00016E
+S31AFE00CFE02C0000004082FFF03D2000013BA998B83800000098F9
+S31AFE00CFF50B00007FA3EB783880000038A0000C4BFFE3953D6098
+S31AFE00D00A0000812B37183BFDFFEC38000001B13F0018B01F00DF
+S31AFE00D01F1AA01C0004392900012C0000003BC00000912B371889
+S31AFE00D03493DF00144082000C38000045B01C00047F85E37838AB
+S31AFE00D0497D0018388002057FA6EB7848003CAD2C0300004180D1
+S31AFE00D05E002838000001901DFFEC3920FFFF93DF0004913F0023
+S31AFE00D0731093DF000C93DF00083860000048000010380000096B
+S31AFE00D088901B00003860FFFF800100247C0803A68361000C8309
+S31AFE00D09D81001083A1001483C1001883E1001C382100204E808E
+S31AFE00D0B200203D20000138000000900998A4386000004E800074
+S31AFE00D0C7209421FFC87C0802A692C1001092E1001493010018F2
+S31AFE00D0DC9321001C93410020936100249381002893A1002C9330
+S31AFE00D0F1C1003093E100349001003C7C9923783B6000007C1BDE
+S31AFE00D106C8003D2000013BC998D07C7A1B787CBC2B7840800159
+S31AFE00D11B783BFEFFD43B0100083AE000043AC00009813F000C46
+S31AFE00D1302C0900004081005C7C1BC8507F890000809F02347F09
+S31AFE00D14543D3784FFEE3827FA0002657BD07FE7FBD00D07C00AB
+S31AFE00D15AE8787D3DE8387FBD03787FA5EB784BFFE159801F021F
+S31AFE00D16F34813F000C7C00EA147D3D4850901F0234913F000C1A
+S31AFE00D1847F7BEA147F5AEA14480000FC801F0010280001FF4068
+S31AFE00D1998100F838000001900100083920000091380004387F55
+S31AFE00D1AE002C3880020538BF002038DF00147F07C37848003CF6
+S31AFE00D1C36D7C631B794080002C813F0004392900012C09000F1C
+S31AFE00D1D8913F000441810010801F00082C000000408200443887
+S31AFE00D1ED0000084800008CA81E00002C00000340820064813F72
+S31AFE00D2020008A97E0002392900017C0B48004082001C3863FF38
+S31AFE00D217FC381E0004907F000C901F0234917F0008907F001071
+S31AFE00D22CA01F000AB2FE0000B01E0002387F002C3880000438C9
+S31AFE00D241BF002038DF001448003AB92C0300004080003892DCFA
+S31AFE00D25600003860FFFF480000382C00000540820014A81E00DC
+S31AFE00D26B023860FFFF901C0000480000203800000B901C00000F
+S31AFE00D2803860FFFF480000107C1BC8004180FEA07F63DB788034
+S31AFE00D29501003C7C0803A682C1001082E100148301001883210C
+S31AFE00D2AA001C83410020836100248381002883A1002C83C100A3
+S31AFE00D2BF3083E10034382100384E8000203803FFFF2800000BA3
+S31AFE00D2D43D20FE01386946144D8100203D60FE01396B473054F1
+S31AFE00D2E900103A7D4B002E3D20FE01392947307D4A4A147D49CC
+S31AFE00D2FE03A64E8004203C60FE01386346244E8000203C60FE54
+S31AFE00D31301386346344E8000203C60FE01386346484E8000204B
+S31AFE00D3283C60FE013863466C4E8000203C60FE01386346844EC8
+S31AFE00D33D8000203C60FE01386346984E8000203C60FE013863FF
+S31AFE00D35246AC4E8000203C60FE01386346BC4E8000203C60FE22
+S31AFE00D36701386346D04E8000203C60FE01386346EC4E800020B7
+S31AFE00D37C3C60FE01386347004E8000203C60FE01386347144E4E
+S31AFE00D3918000209421FFE87C0802A693A1000C93C1001093E103
+S31AFE00D3A600149001001C3D200000800937207C9F23782C00008E
+S31AFE00D3BB004082007C48004C153D20000138699ADC8003000476
+S31AFE00D3D02C00000540820018A00300162C0000004082005048FA
+S31AFE00D3E5004CE9480000482C00000040820014480008D9380007
+S31AFE00D3FA000A981F0000480000603FA00001389DA12038A00063
+S31AFE00D40F8048004D512C0300003BBDA1203D2000003D600000BC
+S31AFE00D42493A93C28906B37204082000C38600000480000303DE2
+S31AFE00D439400000816A3C283D000000880B0000396B0001981F1F
+S31AFE00D44E000081283720916A3C283929FFFF912837203860005E
+S31AFE00D463018001001C7C0803A683A1000C83C1001083E10014E9
+S31AFE00D478382100184E8000209421FFE07C0802A693A1001493A1
+S31AFE00D48DC1001893E1001C900100243D2000003BA932007C7EFB
+S31AFE00D4A21B783BE000644800002837FFFFFF40820010480000A1
+S31AFE00D4B7513BE0006448000014813D0048386000647D2803A6E0
+S31AFE00D4CC4E8000217FC3F378388100084BFFFEBD2C0300004175
+S31AFE00D4E182FFCC88610008800100247C0803A683A1001483C1A6
+S31AFE00D4F6001883E1001C382100204E8000209421FFE87C0802FC
+S31AFE00D50BA693A1000C93C1001093E100149001001C3D2000012A
+S31AFE00D5203BA9A1A04800003080BE37247FE3FB787FA4EB784819
+S31AFE00D535004D417C631B7940810014801E37247FBD1A147C0325
+S31AFE00D54A0050901E372448004A853FC00000801E37242C000034
+S31AFE00D55F00418200303D2000013BE99ADC801F00042C000005F4
+S31AFE00D5744082000C7FE3FB7848004B51801F00042C0000004008
+S31AFE00D58982FFA0480007413D2000003BC93200801E00443D2006
+S31AFE00D59E00012C0000003929A1A03D6000003D4000003BE0006F
+S31AFE00D5B300912B3C2C93EA372441820010386000004BFFDC0DC5
+S31AFE00D5C893FE00448001001C7C0803A683A1000C83C1001083A4
+S31AFE00D5DDE10014382100184E8000209421FFF07C0802A693E19D
+S31AFE00D5F2000C900100143D600000812B3C2C2C04002498890049
+S31AFE00D6070039290001912B3C2C40820010380000013D2000001B
+S31AFE00D61C90093C103FE00000801F3C10688B0023212B00007D27
+S31AFE00D6316959143140FFFF7D2A01107D2058394182001C3D4059
+S31AFE00D6460000392000013D60000038000000912A3C14900B3CBA
+S31AFE00D65B183D600000812B3724392900012C090100912B37244A
+S31AFE00D6704182002C3D20000080093C142C000000418200283D28
+S31AFE00D685600000812B3C18392900012C090003912B3C184082BF
+S31AFE00D69A00104BFFFE6938000000901F3C10800100147C080367
+S31AFE00D6AFA683E1000C382100104E8000209421FFE87C0802A62D
+S31AFE00D6C493A1000C93C1001093E100149001001C4800055D7C4E
+S31AFE00D6D97D1B783C60FE013C80FE0138A000EC38844828386347
+S31AFE00D6EE48204BFFE3D57FA3EB78480005A58001001C7C08031E
+S31AFE00D703A683A1000C83C1001083E10014382100184E8000200C
+S31AFE00D7189421FFE87C0802A693A1000C93C1001093E100149074
+S31AFE00D72D01001C480005017C7D1B783C60FE013C80FE0138A0BE
+S31AFE00D74200FE38844838386348204BFFE3797FA3EB7848000519
+S31AFE00D757498001001C7C0803A683A1000C83C1001083E10014AA
+S31AFE00D76C382100184E8000209421FFE87C0802A69381000893CE
+S31AFE00D781A1000C93C1001093E100149001001C7C7D1B787C9EA3
+S31AFE00D79623784BFFFD6D3D2000008009371C3D6000001FE00056
+S31AFE00D7AB0A3B8B320048000014813C0048386000647D2803A6B8
+S31AFE00D7C04E8000217FA3EB787FC4F3784BFFFBC97C631B79406D
+S31AFE00D7D58200102C1F00003BFFFFFF4082FFD48001001C7C0870
+S31AFE00D7EA03A68381000883A1000C83C1001083E100143821001C
+S31AFE00D7FF184E8000209421FF787C0802A693C1008093E10084E7
+S31AFE00D8149001008C7C8023782C00000590A1001090C1001490E0
+S31AFE00D829E100189101001C91210020914100249081000C3BC05F
+S31AFE00D83E00004182002C28000005418100102C000004418201EF
+S31AFE00D85394480003482C000006418203082C0000074182030C90
+S31AFE00D868480003343FE00000801F37283D6000002C0000003909
+S31AFE00D87D200001912B372C40820014480011C1907F37282C03C5
+S31AFE00D892000041820308811F37283808FFFF280000394181024D
+S31AFE00D8A7F83D60FE01396B48485400103A7D4B002E3D20FE01B0
+S31AFE00D8BC392948487D4A4A147D4903A64E8004203D20FF00611E
+S31AFE00D8D1290014816900007C0006AC3948FFFF3C0080007C0032
+S31AFE00D8E654307D6B0378916900007C0006AC480002A83D20FFCC
+S31AFE00D8FB0061290200A00900007C0006AC60000008B009000090
+S31AFE00D9107C0006AC480002883D20FF0061290200A00900007CF1
+S31AFE00D9250006AC60000004B00900007C0006AC480002683D20DD
+S31AFE00D93AFF0061290240A00900007C0006AC60000004B0090015
+S31AFE00D94F007C0006AC480002483D20FF0061290220A00900004E
+S31AFE00D9647C0006AC60000008B00900007C0006AC480002283D7E
+S31AFE00D97920FF0061290220A00900007C0006AC60000004B009D6
+S31AFE00D98E00007C0006AC480002083D20FF006129094080090048
+S31AFE00D9A3007C0006AC60000080900900007C0006AC480001E865
+S31AFE00D9B83D20FF0061290948816900007C0006AC3948FFE53C66
+S31AFE00D9CD0080007C0054307D6B0378916900007C0006AC4800EE
+S31AFE00D9E201BC3D60000083CB372C38000000900B372C3D20008E
+S31AFE00D9F700814937282C0A00004182019C7D4853783808FFFF8A
+S31AFE00DA0C280000394181018C3D60FE01396B49305400103A7D7D
+S31AFE00DA214B002E3D20FE01392949307D4A4A147D4903A64E80DA
+S31AFE00DA3604203D20FF0061290014816900007C0006AC3948FF21
+S31AFE00DA4BFF3C0080007C0054307D6B0078916900007C0006AC7F
+S31AFE00DA604800013C3D20FF0061290200A00900007C0006AC70F9
+S31AFE00DA7500FFF75400043EB00900007C0006AC480001183D2067
+S31AFE00DA8AFF0061290200A00900007C0006AC7000FFFB5400045F
+S31AFE00DA9F3EB00900007C0006AC480000F43D20FF0061290240E5
+S31AFE00DAB4A00900007C0006AC7000FFFB5400043EB00900007C4D
+S31AFE00DAC90006AC480000D03D20FF0061290220A00900007C004D
+S31AFE00DADE06AC7000FFF75400043EB00900007C0006AC48000052
+S31AFE00DAF3AC3D20FF0061290220A00900007C0006AC7000FFFB25
+S31AFE00DB085400043EB00900007C0006AC480000883D20FF0061FA
+S31AFE00DB1D290940800900007C0006AC5400066E900900007C00E9
+S31AFE00DB3206AC480000683D20FF0061290948816900007C0006D5
+S31AFE00DB47AC3948FFE53C0080007C0054307D6B0078916900009E
+S31AFE00DB5C7C0006AC4800003C3D20000083C93728480000303945
+S31AFE00DB7161000838010090392000039BC1007199210070900185
+S31AFE00DB860074916100783D200000800B000883C9371C90093749
+S31AFE00DB9B1C7FC3F3788001008C7C0803A683C1008083E10084C2
+S31AFE00DBB0382100884E8000209421FFE07C0802A693A1001493F2
+S31AFE00DBC5C1001893E1001C900100247C7D1B787C9F23787CA3C8
+S31AFE00DBDA2B784BFFCCE938000000901F00007FA3EB783881006B
+S31AFE00DBEF084BFFF7A52C03000041820018880100082C00000365
+S31AFE00DC044082000C38000001901F000038600001800100247C97
+S31AFE00DC190803A683A1001483C1001883E1001C382100204E80E6
+S31AFE00DC2E00209421FFE87C0802A69381000893A1000C93C10045
+S31AFE00DC431093E100149001001C3FA000003BBD3200813D003488
+S31AFE00DC583860FFFF7D2803A64E800021801D00347C7C1B78384C
+S31AFE00DC6D6000007C0803A64E8000217F83E3788001001C7C08A4
+S31AFE00DC8203A68381000883A1000C83C1001083E100143821007F
+S31AFE00DC97184E8000209421FFF87C0802A69001000C3D2000009C
+S31AFE00DCAC39293200800900347C0803A64E8000218001000C7CE9
+S31AFE00DCC10803A6382100084E8000209421FFE87C0802A693A14E
+S31AFE00DCD6000C93C1001093E100149001001C3FA000003BBD3287
+S31AFE00DCEB00817D00343D20000080693C207D6803A63D20000061
+S31AFE00DD003800000090093B584E800021801D00303D200000800D
+S31AFE00DD15693C247C0803A64E8000213D200000380000019009E1
+S31AFE00DD2A3B788001001C7C0803A683A1000C83C1001083E1007B
+S31AFE00DD3F14382100184E8000209421FFE87C0802A693A1000C50
+S31AFE00DD5493C1001093E100149001001C3FA000003BBD32008193
+S31AFE00DD691D00343860FFFF7D0803A63D400000392000013D6018
+S31AFE00DD7E000038000000912A3B58900B3B784E8000213D20006C
+S31AFE00DD930090693C20813D0034386000017D2803A64E8000215A
+S31AFE00DDA8813D00303860FFFF7D2803A64E8000213D20000080C4
+S31AFE00DDBD1D003090693C24386000017C0803A64E800021800171
+S31AFE00DDD2001C7C0803A683A1000C83C1001083E100143821009A
+S31AFE00DDE7184E8000209421FFE87C0802A69381000893A1000CF9
+S31AFE00DDFC93C1001093E100149001001C3FE00000801F37302C24
+S31AFE00DE11000000408200A03FA000003BBD3200813D0034386003
+S31AFE00DE26FFFF7D2803A64E800021813D00347C7C1B7838600093
+S31AFE00DE3B017D2803A64E800021815D00143D20FE013929D6BC4E
+S31AFE00DE50912A00043D60FE01396BD7183D20FE01916A00083933
+S31AFE00DE6529D5E8912A000C3D60FE01396BD4803D20FE01916A0C
+S31AFE00DE7A00103929D804912A00143D60FE01396BDBB83D20FE44
+S31AFE00DE8F01916A00183929D774912A001C801D00347F83E378B4
+S31AFE00DEA47C0803A64E80002138000001901F37303D2000003F5E
+S31AFE00DEB9A00001A0893B6A387D9ADC480041353BBD9ADC801DED
+S31AFE00DECE00043D20000090093C1C8001001C7C0803A68381001B
+S31AFE00DEE30883A1000C83C1001083E10014382100184E800020C3
+S31AFE00DEF89421FFF07C0802A693E1000C90010014480040CD3D8A
+S31AFE00DF0D2000013BE99ADC3D200000817F000480093C1C7C0082
+S31AFE00DF225800418200602C0B0004408200484BFFFE193C600029
+S31AFE00DF37013D2000013929A1A03C80000038C3A1203CA000007B
+S31AFE00DF4C396000013940000D3D0000003CE0000038000000907B
+S31AFE00DF61C43C28916537209943A12091283C2C90073724801FE3
+S31AFE00DF7600042C000000408200084BFFFE6D3D20000180099A62
+S31AFE00DF8BE03D600000900B3C1C800100147C0803A683E1000CDB
+S31AFE00DFA0382100104E8000209421FFE87C0802A693A1000C9376
+S31AFE00DFB5C1001093E100149001001C3D20000080E93B6C2C07AD
+S31AFE00DFCA0000408200283D000000392000013D6000003D4000A3
+S31AFE00DFDF003800232891283B6490EB3C50900A3B684800007C46
+S31AFE00DFF43C60FE013C8000003863479C38843C5038A000014BD3
+S31AFE00E009FF4E213C60FE013C8000003863477438843B6838A0AC
+S31AFE00E01E00024BFF4E093C60FE013C800000386347CC38843B4A
+S31AFE00E0336438A000014BFF4DF13C60FE013C800000386347E8EE
+S31AFE00E0483884395838A000054BFF4DD93C60FE013C8000013895
+S31AFE00E05D6348103884211C38A000054BFF4DC13D20000038002C
+S31AFE00E072000090093B844800034D480031813D6000003D2000B1
+S31AFE00E0870039293B483BEB3B387C1F48004182003C7D3D4B78A3
+S31AFE00E09C3BC00001813F00047FE3FB787D2803A64E8000217C1D
+S31AFE00E0B1631B794182000C93DF000C48000008907F000C3BFF6D
+S31AFE00E0C600107C1FE8004082FFD43D20000080093C542C000077
+S31AFE00E0DB00408200143C60FE0138634A184BFFD9DD48000090E6
+S31AFE00E0F03D20000080093B642C000000418200283C60000138A6
+S31AFE00E105632108480027912C030000418200143C60FE01386339
+S31AFE00E11A4A384BFFD9A9480000103D2000003800000190093BDC
+S31AFE00E12F843D20000080093B842C000000418200403C600000E3
+S31AFE00E14438633958480001B97C641B783C60FE0138634A644BF2
+S31AFE00E159FFD96D3C6000013863211C4800019D7C641B783C60FE
+S31AFE00E16EFE0138634A6C4BFFD9514BFFFC758001001C7C0803F5
+S31AFE00E183A683A1000C83C1001083E10014382100184E80002082
+S31AFE00E1989421FFF093E1000C380000047C0903A67C9F237838F2
+S31AFE00E1AD800000398000188963000038E000012C0B000038A0F4
+S31AFE00E1C2000038C0000A38630001418201106960003021200098
+S31AFE00E1D7007C0901147CE9003941820030892300003809FFBF59
+S31AFE00E1EC280000194181000C380900205409063E2C090078401C
+S31AFE00E2018200108D63000138C0001038630001392BFFD0380B67
+S31AFE00E216FFBF7D2A4B787C0803785529063E5400063E21290024
+S31AFE00E22B09392000007D29491420000005380000007C00011487
+S31AFE00E2407D27037938E000003920000040820010380BFF9F2859
+S31AFE00E25500000541810008392000012C09000041820068554092
+S31AFE00E26A063E280000094181000C7D49537848000030380BFF0D
+S31AFE00E27F9F280000054181000C392BFFA94800001C5500063EE3
+S31AFE00E294200000057C0001107C0003B8392BFFC97C0948387CDB
+S31AFE00E2A909300040800020896300007C0531D62C0B00007CA07C
+S31AFE00E2BE4A14386300014082FF0C480000142C0B002E418200FC
+S31AFE00E2D30C386000004800001C7CA060307C840378398CFFF847
+S31AFE00E2E84200FECC909F00003860000183E1000C382100104E22
+S31AFE00E2FD8000209421FFE87C0802A693A1000C93C1001093E188
+S31AFE00E31200149001001C890300033FA0000188A3000088C3004C
+S31AFE00E3270188E300023C80FE0138844A88387DA2A04BFFD70509
+S31AFE00E33C387DA2A08001001C7C0803A683A1000C83C100108300
+S31AFE00E351E10014382100184E800020812300007C09180041825B
+S31AFE00E366002081230004908900008003000490640000900400AE
+S31AFE00E37B04908300044E80002090890004908900009124000095
+S31AFE00E390912400044E8000207C6B1B78806B00007C0358004150
+S31AFE00E3A582001880030000900B000081230000916900044E8037
+S31AFE00E3BA0020386000004E8000209421FFE87C0802A693A100A8
+S31AFE00E3CF0C93C1001093E100149001001C3D0000003CE0000037
+S31AFE00E3E439283C3839673C3091283C3891673C303D400001919F
+S31AFE00E3F92900043BCAA2C0916B00043FA000003BE000107FC42A
+S31AFE00E40EF378387D3C304BFFFF4937FFFFFF3BDE06104082FFB3
+S31AFE00E423EC8001001C7C0803A683A1000C83C1001083E100142E
+S31AFE00E438382100184E8000209421FFF87C0802A69001000C8077
+S31AFE00E44D040000A124000490030010B123001480040000A10435
+S31AFE00E46200043D20000039693C4890093C483D400000B10B00C4
+S31AFE00E47704906A3C54480000158001000C7C0803A63821000886
+S31AFE00E48C4E8000209421FFF87C0802A69001000C812300003838
+S31AFE00E4A18300108009000038A000007C0803A64E8000218001D1
+S31AFE00E4B6000C7C0803A6382100084E8000209421FF587C080233
+S31AFE00E4CBA67D80002693410090936100949381009893A1009C07
+S31AFE00E4E093C100A093E100A4900100AC9181008C3D20000039A6
+S31AFE00E4F529320083A9004C3D6000002C1D00007C7B1B787C9AB5
+S31AFE00E50A23787CBC2B7883EB3C543BC00005418200547FBFEB44
+S31AFE00E51F78815F0000801F000C816A00243D2000002C00000048
+S31AFE00E53439293734916A0028912A00244082002C800A00003C4B
+S31AFE00E54980000038843C487FE3FB7838A000007C0803A64E8051
+S31AFE00E55E0021801F000C60000001901F000C2E1D000048000029
+S31AFE00E5733C813F00007FE3FB788009001C7C0803A64E800021FD
+S31AFE00E5883D20000039293200800900483C60000360630D407C8D
+S31AFE00E59D0803A64E80002137DEFFFF408100E4813F00007FE3EB
+S31AFE00E5B2FB788009000C7C0803A64E8000212C0300004182FF3B
+S31AFE00E5C7B0813F00003D6000008149001038A0000238EB3C40DB
+S31AFE00E5DC9361000893410010938100147FE3FB78388100083850
+S31AFE00E5F1DC000E7D4803A63800000E392000009001000C912BC1
+S31AFE00E6063C404E8000213D20000080093C503FC000002C0000F3
+S31AFE00E61B00418200384BFFF6117C7D1B783C60FE0138634A94FA
+S31AFE00E6304BFFD4957F63DB783880000E4BFFDF617F43D3787F0D
+S31AFE00E64584E3784BFFDF557FA3EB784BFFF64D801E3C402C0007
+S31AFE00E65A0000408200307FFDFB787FDFF378813D00007FA3EB32
+S31AFE00E66F788009001C7C0803A64E800021801F3C402C00000012
+S31AFE00E6844182FFE47FBFEB7841920018813F00003800000081D2
+S31AFE00E6996900289009002891690024800100AC8181008C7C08B9
+S31AFE00E6AE03A683410090836100948381009883A1009C83C1003E
+S31AFE00E6C3A083E100A47D808120382100A84E8000209421FFF85D
+S31AFE00E6D87C0802A69001000C3D20000038093C407C0400004086
+S31AFE00E6ED8200103800000190093C404800001881230000816946
+S31AFE00E7020028800B00087C0803A64E8000218001000C7C080313
+S31AFE00E717A6382100084E8000209421FFE07C0802A69361000C34
+S31AFE00E72C9381001093A1001493C1001893E1001C900100243D7A
+S31AFE00E741200000392932008389004C3D6000002C1C00007C7DD5
+S31AFE00E7561B787C9B237883CB3C54418200547F9EE378815E0019
+S31AFE00E76B00801E000C816A00243D2000002C0000003929373486
+S31AFE00E780916A0028912A00244082002C800A00003C8000003812
+S31AFE00E795843C487FC3F37838A000007C0803A64E800021801E24
+S31AFE00E7AA000C60000001901E000C813E00007FC3F3788009003A
+S31AFE00E7BF1C7C0803A64E8000213C60000038633C384BFFFBC950
+S31AFE00E7D47C7F1B7941820054393F000CA009000C817F000C81C0
+S31AFE00E7E949000481090008B01D000C917D0000915D0004911DB1
+S31AFE00E7FE000880BF00087F63DB7838A5FFF2389F001A4BFFCAAB
+S31AFE00E813B13C60000038633C307FE4FB784BFFFB3D807F000839
+S31AFE00E82848000008386000002C1C000041820018813E000038D5
+S31AFE00E83D000000816900289009002891690024800100247C08A8
+S31AFE00E85203A68361000C8381001083A1001483C1001883E10008
+S31AFE00E8671C382100204E8000209421FFE87C0802A693A1000C0D
+S31AFE00E87C93C1001093E100149001001C7CA02B797C0903A640BC
+S31AFE00E89181003C7C9F23787FC902A63FA00000807F000080BFEE
+S31AFE00E8A60004809D3C444BFFCA15801D3C44813F000437DEFF9A
+S31AFE00E8BBFF7C004A143BFF0008901D3C444082FFD88001001CC6
+S31AFE00E8D07C0803A683A1000C83C1001083E10014382100184E47
+S31AFE00E8E58000209421FF607C0802A69361008C9381009093A1E2
+S31AFE00E8FA009493C1009893E1009C900100A47C7E1B783C600017
+S31AFE00E90F007C9B237838633C304BFFFA817C7C1B787F89FE7070
+S31AFE00E9247D20E2787C004850817E00007C00FE70393C000C7DE8
+S31AFE00E9393F0038800B001493E100089361000C7FC3F3783881CD
+S31AFE00E94E000838A000017C0803A64E8000213D20000080093C91
+S31AFE00E963502C000000418200384BFFF2C57C7D1B783C60FE01FC
+S31AFE00E97838634AA44BFFD1497FE3FB783880000E4BFFDC15388B
+S31AFE00E98D7F000E389BFFF24BFFDC097FA3EB784BFFF301813E6F
+S31AFE00E9A20000800900282C0000004182005C3C600000386339F0
+S31AFE00E9B758389F001E38A000044BFFD3752C030000418200405A
+S31AFE00E9CC815E00007FC3F378812A00287F64DB78800900043DD3
+S31AFE00E9E160FE017C0803A683AA0014396BE8703D20000093E97B
+S31AFE00E9F63C44916A00144E800021813E000093A900142C1C0033
+S31AFE00EA0B00418200183C600000937C000838633C387F84E378F7
+S31AFE00EA204BFFF93D800100A47C0803A68361008C838100908384
+S31AFE00EA35A1009483C1009883E1009C382100A04E80002094211B
+S31AFE00EA4AFFF87C0802A69001000C3D20000080693C5481630039
+S31AFE00EA5F00800B00207C0803A64E8000218001000C7C0803A61D
+S31AFE00EA74382100084E8000209421FFF87C0802A69001000C7C49
+S31AFE00EA89641B783C60FE0138634AB44BFFD0318001000C7C08ED
+S31AFE00EA9E03A6382100084E8000209421FFF07C0802A693E10023
+S31AFE00EAB30C900100143D2000013BE92588801F001C2C00000083
+S31AFE00EAC84082002C90692588909F00044800049D7C631B7940D2
+S31AFE00EADD82001C801F0008392000017C0000D0913F001C901F9A
+S31AFE00EAF2001038600000800100147C0803A683E1000C382100D8
+S31AFE00EB07104E8000203D200001392925888009001C7C6B1B786B
+S31AFE00EB1C2C0000004082000C386000074E800020800900147C40
+S31AFE00EB310B00404180001480090018386000007C0B00404D80DE
+S31AFE00EB460020386000014E8000203D20000139692588800B00D7
+S31AFE00EB5B1C2C0000004182001C812B001438600000912400006D
+S31AFE00EB70800B0018900500004E800020386000074E8000203D9C
+S31AFE00EB8520000139692588800B001C7C6A1B782C0000004182F8
+S31AFE00EB9A001C812B000838600000912A0000800B000C90040014
+S31AFE00EBAF004E800020386000074E8000209421FFD87C0802A61A
+S31AFE00EBC49321000C93410010936100149381001893A1001C937D
+S31AFE00EBD9C1002093E100249001002C3D200001800925A47C7F42
+S31AFE00EBEE1B782C0000007C9E23787CBA2B783B80000040820044
+S31AFE00EC030C38600007480000F83D20000183A925883C80FE011B
+S31AFE00EC183CA0FE013884FAA038A5FBC87CA428507FA3EB784BAA
+S31AFE00EC2DFFC6957CBFF214380000807C0903A639200000612073
+S31AFE00EC4210003D600E007C0004AC7D398BA67D788BA67C198BA5
+S31AFE00EC57A67D788BA6392900104200FFE03C0004004C00012C8C
+S31AFE00EC6C7C108BA64C00012C3D20000139292588800900107CD7
+S31AFE00EC81BE2B783C60FE017FFF00383F20FE017D3B4B78386354
+S31AFE00EC964AF07FE4FB784BFFCE294800001C801B000838794B11
+S31AFE00ECAB085400F87E7C0002147FFF02144BFFCE0D7C1FF04068
+S31AFE00ECC0408000207FE3FB787FA803A64E800021480003657C9B
+S31AFE00ECD57C1B794182FFCC93FA00003C0002004C00012C7C10B8
+S31AFE00ECEA8BA64C00012C3C60FE0138634B0C4BFFCDCD7F83E311
+S31AFE00ECFF788001002C7C0803A68321000C83410010836100142E
+S31AFE00ED148381001883A1001C83C1002083E10024382100284ECF
+S31AFE00ED298000209421FFD07C0802A692E1000C930100109321AA
+S31AFE00ED3E0014934100189361001C9381002093A1002493C100CC
+S31AFE00ED532893E1002C900100343D600001392B25888009001CC6
+S31AFE00ED687CBE2B782C0000007CD833787C7C1B787C9D23783B10
+S31AFE00ED7D4000004082000C386000074800011C836B25883C8014
+S31AFE00ED92FE013CA0FE013884FBC838A5FD0C7CA428507F63DBD4
+S31AFE00EDA7784BFFC5197CBDF214380000807C0903A63920000035
+S31AFE00EDBC612010003D600E007C0004AC7D398BA67D788BA67C4D
+S31AFE00EDD1198BA67D788BA6392900104200FFE03C0004004C009A
+S31AFE00EDE6012C7C108BA64C00012C3C60FE0138634B107FA4EB12
+S31AFE00EDFB787F86E3784BFFCCC53D2000013EE0FE013B292588C0
+S31AFE00EE104800002038774B084BFFCCAD57E0F87E7C0002147FFE
+S31AFE00EE25BD02147FDFF0507F9C02142C1E00004081005080193E
+S31AFE00EE3A00087FC5F3787F8500007F83E3787FA4EB784FFEE3F1
+S31AFE00EE4F827D200026552907FE7D2900D07C0048787CA948388B
+S31AFE00EE647D2503787F6803A67CBF2B784E800021480001C17C95
+S31AFE00EE797A1B794182FF98939800003C0002004C00012C7C10AA
+S31AFE00EE8E8BA64C00012C3C60FE0138634B0C4BFFCC297F43D360
+S31AFE00EEA378800100347C0803A682E1000C830100108321001441
+S31AFE00EEB8834100188361001C8381002083A1002483C10028830A
+S31AFE00EECDE1002C382100304E80002028030007418100883D608F
+S31AFE00EEE2FE01396B4C205460103A7D4B002E3D20FE0139294C0A
+S31AFE00EEF7207D4A4A147D4903A64E8004203C60FE0138634B30AB
+S31AFE00EF0C4E8000203C60FE0138634B504E8000203C60FE01386C
+S31AFE00EF21634B684E8000203C60FE0138634B804E8000203C6048
+S31AFE00EF36FE0138634B9C4E8000203C60FE0138634BB44E800050
+S31AFE00EF4B203C60FE0138634BC44E8000203C60FE0138634BE8F1
+S31AFE00EF604E8000203C60FE0138634C0C4E8000209421FFE07C1E
+S31AFE00EF750802A693A1001493C1001893E1001C900100243D207D
+S31AFE00EF8A000183E925883C80FE013CA0FE013884FA0438A5FA2D
+S31AFE00EF9FA07CA428507FE3FB784BFFC3193FC000013BA0000843
+S31AFE00EFB438610008380000807C0903A639200000612010003D96
+S31AFE00EFC9600E007C0004AC7D398BA67D788BA67C198BA67D78CD
+S31AFE00EFDE8BA6392900104200FFE07FE803A64E8000217D3DF1AC
+S31AFE00EFF3D63D600001396B25883D29FE003C00FE00912B0018CE
+S31AFE00F008900B001493CB000893AB000C38600000800100247CD7
+S31AFE00F01D0803A683A1001483C1001883E1001C382100204E80CE
+S31AFE00F03200209421FFF07C0802A693E1000C900100143C000074
+S31AFE00F0477E7C7F1B786000007E7FE90039418200503C60FE0177
+S31AFE00F05C38634C407FE4FB784BFFCA613C000010600000107FEE
+S31AFE00F071E9003938600004408200303C600020606300207FE3D5
+S31AFE00F08618387C6300D07C63FE707C6018F8546307BC54000764
+S31AFE00F09B387C6303784800000838600000800100147C0803A620
+S31AFE00F0B083E1000C382100104E8000203D20FE00392920007C27
+S31AFE00F0C50348407C802378396000004181000C7C0048404181E3
+S31AFE00F0DA001C3D20FE01388928D07C032040418100107C00209F
+S31AFE00F0EF4040810008396000017D635B784E8000209421FF68A8
+S31AFE00F1047C0802A693410080936100849381008893A1008C930B
+S31AFE00F119C1009093E100949001009C3FA000003BBD320090615D
+S31AFE00F12E0008819D00347C7A1B783860FFFF7D8803A63B8100E5
+S31AFE00F143083B6100A03800000139600000938100789081000CF4
+S31AFE00F15890A1001090C1001490E100189101001C91210020915E
+S31AFE00F16D4100249801007099610071936100744E800021813D9B
+S31AFE00F18200347C7C1B78386000017D2803A64E80002138810026
+S31AFE00F197707F43D3784BFFC9B1801D00347F83E3787C0803A6C3
+S31AFE00F1AC4E8000218001009C7C0803A6834100808361008483E2
+S31AFE00F1C181008883A1008C83C1009083E10094382100984E80F1
+S31AFE00F1D600209421FFE07C0802A6934100089361000C93810050
+S31AFE00F1EB1093A1001493C1001893E1001C900100243FA0000023
+S31AFE00F2003BBD3200813D00347C7A1B783860FFFF7D2803A67CF0
+S31AFE00F2159C23784E800021813D00347C7B1B78386000017D2800
+S31AFE00F22A03A64E8000217F84E3787F43D3784BFFD365801D00A9
+S31AFE00F23F347F63DB787C0803A64E800021800100247C0803A65F
+S31AFE00F254834100088361000C8381001083A1001483C1001883BA
+S31AFE00F269E1001C382100204E8000209421FFE87C0802A693E1EC
+S31AFE00F27E00149001001C3FE00001813F03C03881000880690069
+S31AFE00F293008009001C7C0803A64E8000212C0300004082FFE4CD
+S31AFE00F2A88001001C7C0803A683E10014382100184E8000209418
+S31AFE00F2BD21FFE07C0802A69381001093A1001493C1001893E1C0
+S31AFE00F2D2001C900100243BE000003FA00001813D03C03881001D
+S31AFE00F2E708806900008009001C7C0803A64E8000212C0300002D
+S31AFE00F2FC418202A4896100082C0B000441820040408100102C63
+S31AFE00F3110B00184182002C480000382C0B000241810030392BC2
+S31AFE00F326FFFF7D694B787D29FE70380900017FE948387D3F032A
+S31AFE00F33B78480000143860FFFB480002683860FFFC4800026064
+S31AFE00F3502C1F00004182FF8C3D200001816903C03BC903C080B9
+S31AFE00F3656B0000800B001C389E04087C0803A64E8000212C0350
+S31AFE00F37A000041820224813D03C0389E040980690000800900BB
+S31AFE00F38F1C7C0803A64E8000212C0300004182020488010008A4
+S31AFE00F3A43BE00000680000017C0000D07C00FE707C0900F855C4
+S31AFE00F3B92906305400056A7C004B787C1F0000393E0004901E16
+S31AFE00F3CE0410913E0404408000487FDCF3787D3D4B783FC000F1
+S31AFE00F3E301813E03C038810008806900008009001C7C0803A612
+S31AFE00F3F84E8000212C030000418201A0880100087C1DF9AE8128
+S31AFE00F40D3C04103BFF00017C1F48004180FFCC3FC00001813E2D
+S31AFE00F42203C03BFE03C0806900008009001C389F040A7C080318
+S31AFE00F437A64E8000212C03000041820160801F04142C000000F1
+S31AFE00F44C41820024813E03C0389F040B806900008009001C7C4E
+S31AFE00F4610803A64E8000212C030000418201343D2000013BC969
+S31AFE00F47603C0889E040888BE04097C862A782C0600FF4182009D
+S31AFE00F48B283C60FE0138634C504BFFFC6D809E0410387E0004CF
+S31AFE00F4A04BFFFD394BFFFDD13860FFFA48000100801E04142CFF
+S31AFE00F4B500000041820088801E041038C000007C0600003BE0AC
+S31AFE00F4CA0000408000403D2000007FEBFB7839093740387E0080
+S31AFE00F4DF047C0A03787D2358AE54C0C23E7C004A787C00021485
+S31AFE00F4F4396B00017D28022E7C0B500054C0442E7C064A7841A3
+S31AFE00F50980FFDC3D200001392903C08889040A88A9040B5480D8
+S31AFE00F51E402E7C002B787C060000418200803C60FE0138634C00
+S31AFE00F533704BFFFBCD3860FFF948000070801E041038C000004B
+S31AFE00F5487C0600003BE00000408000287FEBFB78387E00047C12
+S31AFE00F55D0A03787C0358AE396B00017C0B50007C06021454061D
+S31AFE00F572043E4180FFEC3D200001888907CA54C5063E7C04284D
+S31AFE00F58700418200203C60FE0138634C9C4BFFFB6D3860FFF928
+S31AFE00F59C480000103860FFFD4800000838600000800100247C61
+S31AFE00F5B10803A68381001083A1001483C1001883E1001C38210F
+S31AFE00F5C600204E8000209421FFD87C0802A69301000893210016
+S31AFE00F5DB0C93410010936100149381001893A1001C93C100202F
+S31AFE00F5F093E100249001002C2C0400037CBE2B7840820044385F
+S31AFE00F60500FFFE901E0000480001103FA00001813D03C03880CF
+S31AFE00F61A0006806900008009000C3BBD03C07C0803A64E80009D
+S31AFE00F62F2138000001939D0410981D040C38600000480000E09F
+S31AFE00F6443FA000003BBD3200813D00343860FFFF7D2803A63F8F
+S31AFE00F6598000013B5C03C07FB8EB784E800021813D00347C7B4B
+S31AFE00F66E1B787D2803A63BE000133F2000014E800021801D0088
+S31AFE00F68314813D00347F63DB787D2803A6901C03C04E80002187
+S31AFE00F698813C03C038800007806900008009001438A003E87C55
+S31AFE00F6AD0803A64E8000213920000038000001913A0418901A81
+S31AFE00F6C20414913A04104BFFFBF57C7C1B794182FF402C1CFF29
+S31AFE00F6D7FD40820030813800483C6000076063A1207D2803A6B5
+S31AFE00F6EC4E800021813903C038800043806900008009000C7CA4
+S31AFE00F7010803A64E8000217FE0FB782C0000003BFFFFFF418157
+S31AFE00F716FFB4939E00003860FFFF8001002C7C0803A683010002
+S31AFE00F72B088321000C83410010836100148381001883A1001CE5
+S31AFE00F74083C1002083E10024382100284E8000209421FFD07C55
+S31AFE00F7550802A692E1000C930100109321001493410018936120
+S31AFE00F76A001C9381002093A1002493C1002893E1002C90010031
+S31AFE00F77F343D2000017C9B2378396903C0812B04187F60FE70B3
+S31AFE00F7947C1B005054000FFE210900007D2849147D2A00397C8C
+S31AFE00F7A97A1B787CB72B783B0000003F200001418201787D7C94
+S31AFE00F7BE5B78801C04102C000000408200F03BC000134BFFFA7F
+S31AFE00F7D3ED7C7F1B794082004C3D4000013BAA03C0897D04085B
+S31AFE00F7E8893D040C7C0B4800418200A03809FFFF5400063E7CAD
+S31AFE00F7FD0B000040820020812A03C03880000680690000800968
+S31AFE00F812000C7C0803A64E800021480000283BE0FFF82C1FFFE9
+S31AFE00F827FC41820044813903C038800043806900008009000CCF
+S31AFE00F83C7C0803A64E8000217FC0F3782C0000003BDEFFFF4169
+S31AFE00F85181FF802C1F00004080006093F700003800FFFF901CC7
+S31AFE00F8660410480000C8813903C03880000680690000800900B8
+S31AFE00F87B0C7C0803A64E80002138000001901C04184BFFFFC83A
+S31AFE00F890813903C038800006806900008009000C7C0803A64E2B
+S31AFE00F8A5800021893D040C39290001993D040C4BFFFFA083BC62
+S31AFE00F8BA0410809C04047F9BE8007F43D3784FFEEB827C0000B8
+S31AFE00F8CF26540007FE7C0000D07F6900787FBD00387FBD4B7882
+S31AFE00F8E47FA5EB784BFFB9D97F7DD850815C04187F60FE707CC2
+S31AFE00F8F91B0050813C0410817C040454000FFE210A00007D4864
+S31AFE00F90E51147D4800397D6BEA147D3D4850913C0410917C0453
+S31AFE00F923047F5AEA147F18EA144082FE947F03C3788001003495
+S31AFE00F9387C0803A682E1000C830100108321001483410018836F
+S31AFE00F94D61001C8381002083A1002483C1002883E1002C382163
+S31AFE00F96200304E8000203803000828000007418100883D60FE17
+S31AFE00F97701396B4D705400103A7D4B002E3D20FE0139294D7006
+S31AFE00F98C7D4A4A147D4903A64E8004203C60FE0138634CC84E44
+S31AFE00F9A18000203C60FE0138634CDC4E8000203C60FE0138632B
+S31AFE00F9B64CFC4E8000203C60FE0138634D084E8000203C60FEEF
+S31AFE00F9CB0138634D144E8000203C60FE0138634D204E800020A7
+S31AFE00F9E03C60FE0138634D304E8000203C60FE0138634D444E58
+S31AFE00F9F58000203C60FE0138634D5C4E8000207D588AA6554AE8
+S31AFE00FA0A0FFE2C0A000041820040380000807C0903A63920005E
+S31AFE00FA1F00612010003D600E007C0004AC7D398BA67D788BA659
+S31AFE00FA347C198BA67D788BA6392900104200FFE03C0004007C7E
+S31AFE00FA490004AC7C188BA63D60FE00380000AA980B055539205C
+S31AFE00FA5E0055992B02AA38000090980B0555892B00002C0A001B
+S31AFE00FA730099230000880B0001392000FF98030001992B000072
+S31AFE00FA88418200103D6002007C0004AC7D788BA6386000004EBB
+S31AFE00FA9D8000207C6A1B787CF88AA654E70FFE2C070000418255
+S31AFE00FAB20040380000807C0903A639200000612010003D600E80
+S31AFE00FAC7007C0004AC7D398BA67D788BA67C198BA67D788BA601
+S31AFE00FADC392900104200FFE03C0004007C0004AC7C188BA655F8
+S31AFE00FAF1480010396000AA9968055539200055992802AA3800B3
+S31AFE00FB0600809808055599680555992802AA392000327D290370
+S31AFE00FB1BA62F87000038000030980A0000396A00014200000085
+S31AFE00FB303D20004C7D2903A6880A00005400067261294B407DD4
+S31AFE00FB452903A65400063E886A0000546906727C0900004182CE
+S31AFE00FB5A0014706000207D204B78408200084200FFE438000007
+S31AFE00FB6FFF98080000892A00007D6A5B782C0900FF3D200001DF
+S31AFE00FB844082001C3529FFFF40810014880A0000394A00012C17
+S31AFE00FB990000FF4182FFEC7D2BFE707D604A787C0058507C0051
+S31AFE00FBAEFE707C6300384D9E00203C0002007C0004AC7C188B25
+S31AFE00FBC3A64E8000209421FFF093C1000893E1000C7D588AA610
+S31AFE00FBD8554A0FFE2C0A000041820040380000807C0903A63910
+S31AFE00FBED200000612010003D000E007C0004AC7D398BA67D185B
+S31AFE00FC028BA67C198BA67D188BA6392900104200FFE03D200438
+S31AFE00FC17007C0004AC7D388BA62C0500002F8A0000546A00100A
+S31AFE00FC2C408100A03BC000AA3BE00055398000A038C000FF9B5E
+S31AFE00FC41CA05559BEA02AA998A05558804000039200031980327
+S31AFE00FC560000380000327C0903A63904000138E300013929FF42
+S31AFE00FC6BFF4200FFFC880300007D2903A6540006725400063E06
+S31AFE00FC8089630000556906727C09000041820014716000207D7F
+S31AFE00FC95204B78408200084200FFE498CA0000892300008804EA
+S31AFE00FCAA00007D0443787C0900007CE33B784182000C39600006
+S31AFE00FCBFFF4800000C34A5FFFF4181FF787CA8FE707D002A7818
+S31AFE00FCD47C0040507C00FE70392000FF992A00007D6B003841A5
+S31AFE00FCE99E00103D2002007C0004AC7D388BA67D635B7883C1EC
+S31AFE00FCFE000883E1000C382100104E8000209421FFF87C0802EC
+S31AFE00FD13A69001000C3803FFFE2800001D418100A03D60FE0119
+S31AFE00FD28396B4D905400103A7D4B002E3D20FE0139294D907D95
+S31AFE00FD3D4A4A147D4903A64E80042038600002480000783860B2
+S31AFE00FD5200414BFF999954637F3E2C0300024182004028030008
+S31AFE00FD6702418100102C030001418200384800004C2C030004BD
+S31AFE00FD7C418200242C0300084082003C386000084800003838FA
+S31AFE00FD9160000E480000303860000C480000283860000448007B
+S31AFE00FDA6002038600005480000183860000A4800001038600095
+S31AFE00FDBB0B480000083860000F8001000C7C0803A63821000812
+S31AFE00FDD04E8000203D20000081693BF0806B00985463C23E4E32
+S31AFE00FDE58000209421FFF87C0802A69001000C7C641B783860E5
+S31AFE00FDFA00404BFF99058001000C7C0803A6382100084E8000DF
+S31AFE00FE0F209421FFF87C0802A69001000C386000414BFF98CDBD
+S31AFE00FE2460640600548004203D2000005484045E900939403822
+S31AFE00FE396000414BFF98C58001000C7C0803A6382100084E807F
+S31AFE00FE4E00209421FFF87C0802A69001000C386000414BFF984B
+S31AFE00FE638D3D20000080893940546305E8380000007C642378C3
+S31AFE00FE7890093940386000414BFF98818001000C7C0803A63831
+S31AFE00FE8D2100084E8000204E8000204E8000209421FFF87C0839
+S31AFE00FEA202A69001000C386000404BFF98413D20FE0139299FAA
+S31AFE00FEB7C47C634A78200300007C6019148001000C7C0803A6E7
+S31AFE00FECC382100084E8000209421FFF87C0802A69001000C3821
+S31AFE00FEE16000404BFF980938830004386000404BFF9811800172
+S31AFE00FEF6000C7C0803A6382100084E8000209421FFF87C080239
+S31AFE00FF0BA69001000C3D200000800939442C0000004082001039
+S31AFE00FF203800000190093944480008118001000C7C0803A63826
+S31AFE00FF352100084E8000203D200000800939482C0000004C823B
+S31AFE00FF4A002038000001900939487D1E9AA67508FFFF3D200078
+S31AFE00FF5F017D2903A638008001B00809C07C0902A6600086A04C
+S31AFE00FF747C0903A64200000080080ABC3D600001600000C09068
+S31AFE00FF89080ABC81280AB8616B00A2552906AE91280AB8916812
+S31AFE00FF9E09F07CE902A690E80AE038002800B0083E8039683E2D
+S31AFE00FFB38038002808B00B000239200091B12809C0394000018A
+S31AFE00FFC89148003038000018980B0004980B0005B14B0006B0C6
+S31AFE00FFDDEB0028B0EB002CB0EB002EB14B003039282800B0E91A
+S31AFE00FFF200023800B000B008280038082810900900043968284E
+S31AFE0100070838082820B14B0002900B000439202000B128280830
+S31AFE01001C380000FF98080A863920000599280A8A38004820B060
+S31AFE010031080A8239204823B1280A824E80002039233E80A00947
+S31AFE01004600207D4302147D4B5378A00A000070088000418200B2
+S31AFE01005B28A00A00007008200041820010A00900027D430214CD
+S31AFE01007048000008394A00087C0A58004082FFD47D495378A0F7
+S31AFE010085090000700080004082FFF87D2A4B787C090378A00A9B
+S31AFE01009A0000700B100041820014A00A00007000EFFFB00A0028
+S31AFE0100AF00B12A0002A12A00023900000038090001B00A000256
+S31AFE0100C4816A00045529043E7C8B49AEA00A000060008000B03B
+S31AFE0100D90A0000A12A000071208000418200647D4B53787D0AE6
+S31AFE0100EE43783D0000076108FFFF394A00017C0A400040820086
+S31AFE01010338A1230A82394000007129FFFDB1230A82A00B000040
+S31AFE0101185400047EB00B0000A1230A8261290002B1230A82A060
+S31AFE01012D0B000060008000B00B0000A00B0000700980004082AC
+S31AFE010142FFB87D6A5B787D495378A0090000700080004082FF47
+S31AFE010157F87D2A4B78B00A00024E80002038E33E80A1070010F1
+S31AFE01016C7C03422E7D434214700680004182000C386000004EC9
+S31AFE010181800020812A0004396000008809000098040000B0CAD5
+S31AFE0101960002812A0004996900007C03422E600080007C03430B
+S31AFE0101AB2E7D388AA655290FFE2C09000041820028812A0004CD
+S31AFE0101C0A00700062C000000408100187C004BAC7C0004AC34A0
+S31AFE0101D500FFF0392900104181FFF0386000014E8000209421C2
+S31AFE0101EAFFE87C0802A693E100149001001C7C7F1B787FE3FBC8
+S31AFE0101FF78388100084BFFFF612C0300004182FFF08861000831
+S31AFE0102148001001C7C0803A683E10014382100184E800020949B
+S31AFE01022921FFE87C0802A693A1000C93C1001093E100149001CA
+S31AFE01023E001C7CBF2B787FE0FB782C0000007C7D1B787C9E23E5
+S31AFE010253783BFFFFFF41820024889E00007FA3EB784BFFFDDD2B
+S31AFE0102687FE0FB782C0000003BDE00013BFFFFFF4082FFE48007
+S31AFE01027D01001C7C0803A683A1000C83C1001083E100143821C8
+S31AFE01029200184E8000209421FFE87C0802A693A1000C93C100F0
+S31AFE0102A71093E100149001001C7CBF2B787FE0FB782C0000001C
+S31AFE0102BC7C7D1B787C9E23783BFFFFFF418200247FA3EB784BF8
+S31AFE0102D1FFFF197FE0FB782C000000987E00003BDE00013BFF94
+S31AFE0102E6FFFF4082FFE48001001C7C0803A683A1000C83C1001D
+S31AFE0102FB1083E10014382100184E8000209421FFE87C0802A63A
+S31AFE0103109381000893A1000C93C1001093E100149001001C3DA1
+S31AFE0103252000008009394C3D6000001FE0000A3B8B32007C7DF9
+S31AFE01033A1B787C9E237848000014813C0048386000647D28035C
+S31AFE01034FA64E8000217FA3EB787FC4F3784BFFFE097C631B7908
+S31AFE010364408200102C1F00003BFFFFFF4082FFD48001001C7C7C
+S31AFE0103790803A68381000883A1000C83C1001083E10014382158
+S31AFE01038E00184E8000209421FF807C8023782C00000590A10022
+S31AFE0103A31090C1001490E100189101001C9121002091410024CC
+S31AFE0103B89081000C386000004182002C28000005418100102C5C
+S31AFE0103CD00000441820144480002B42C000006418202782C0071
+S31AFE0103E2000741820278480002A03D60FE01800B4EDC3D20FE27
+S31AFE0103F70139294E087D2902147D2903A64E8004203D20FF00DA
+S31AFE01040C61290014800900007C0006AC60000400900900007C08
+S31AFE0104210006AC480000E03D20FF0061290200A00900007C00DA
+S31AFE01043606AC60000008B00900007C0006AC480000C03D20FF47
+S31AFE01044B0061290200A00900007C0006AC60000004B009000017
+S31AFE0104607C0006AC480000A03D20FF0061290240A00900007C1F
+S31AFE0104750006AC60000004B00900007C0006AC480000803D204B
+S31AFE01048AFF0061290220A00900007C0006AC60000008B00900B5
+S31AFE01049F007C0006AC480000603D20FF0061290220A0090000BC
+S31AFE0104B47C0006AC60000004B00900007C0006AC480000403DF0
+S31AFE0104C920FF0061290940800900007C0006AC600000809009F7
+S31AFE0104DE00007C0006AC480000203D20FF0061290948800900AE
+S31AFE0104F3007C0006AC60000010900900007C0006AC3D2000002D
+S31AFE0105083800000190093950480001783D2000008069395038B6
+S31AFE01051D000000900939503D60FE01800B4FC43D20FE013929AA
+S31AFE0105324EF07D2902147D2903A64E8004203D20FF006129008E
+S31AFE01054714800900007C0006AC540005A8900900007C0006AC07
+S31AFE01055C4800012C3D20FF0061290200A00900007C0006AC70E1
+S31AFE01057100FFF75400043EB00900007C0006AC480001083D204F
+S31AFE010586FF0061290200A00900007C0006AC7000FFFB54000437
+S31AFE01059B3EB00900007C0006AC480000E43D20FF0061290240CD
+S31AFE0105B0A00900007C0006AC7000FFFB5400043EB00900007C25
+S31AFE0105C50006AC480000C03D20FF0061290220A00900007C0035
+S31AFE0105DA06AC7000FFF75400043EB00900007C0006AC4800002A
+S31AFE0105EF9C3D20FF0061290220A00900007C0006AC7000FFFB0D
+S31AFE0106045400043EB00900007C0006AC480000783D20FF0061E2
+S31AFE010619290940800900007C0006AC5400066E900900007C00C1
+S31AFE01062E06AC480000583D20FF0061290948800900007C00061E
+S31AFE010643AC54000734900900007C0006AC48000038386000364D
+S31AFE0106584800003039610008380100883920000398610071994E
+S31AFE01066D21007090010074916100783D200000800B000880699A
+S31AFE010682394C9009394C382100804E8000209421FFE87C0802D2
+S31AFE010697A693C1001093E100149001001C7C9E237839200000FC
+S31AFE0106AC7C7F1B78913E0000881F0A86700B00014182006038C9
+S31AFE0106C1000001981F0A86A13F2800391F28007120800040827C
+S31AFE0106D6003C8128000439400001880900003960B00098010034
+S31AFE0106EB08B1480002B17F280038610008388000014BFFAAA5A7
+S31AFE0107002C0300004182000C38000001901E0000380000109022
+S31AFE0107151F094C392000017D234B788001001C7C0803A683C18B
+S31AFE01072A001083E10014382100184E8000209421FFF07C0802A4
+S31AFE01073FA693C1000893E1000C900100143D2000003BE93200C6
+S31AFE010754813F00343860FFFF7D2803A64E8000217C7E1B787CBB
+S31AFE0107691E9AA67400FFFF3D200000800939542C000000408245
+S31AFE01077E009438000001900939544BFFF7B5813F0034386000EC
+S31AFE010793007D2803A64E800021815F00147C1E9AA67400FFFFCF
+S31AFE0107A83D20FE01900A000039290228912A00043D60FE013921
+S31AFE0107BD6B02983D20FE01916A000839290040912A000C3D60B8
+S31AFE0107D2FE01396B01E83D20FE01916A001039290394912A0066
+S31AFE0107E7143D60FE01396B06903D20FE01916A00183929030832
+S31AFE0107FC912A001C801F00347FC3F3787C0803A64E80002180F0
+S31AFE0108110100147C0803A683C1000883E1000C382100104E8098
+S31AFE01082600209421FFF07C0802A693E1000C900100143D200046
+S31AFE01083B0080693C587C9F23782C030000418200084BFFAA750D
+S31AFE010850881F00002C0000024082002C3C80000038843C483897
+S31AFE0108657F001C38A000064BFFB4C92C03000040820010801F99
+S31AFE01087A00103D20000090093958800100147C0803A683E100A7
+S31AFE01088F0C382100104E8000209421FE887C0802A69321015C74
+S31AFE0108A493410160936101649381016893A1016C93C101709336
+S31AFE0108B9E101749001017C3D20000090693C58386100187C7931
+S31AFE0108CE1B783880000038A0012C4BFFAAC13D20000080893C69
+S31AFE0108E34839693C48A06B00043D201234394000003CE0000046
+S31AFE0108F838C0000161295555396000063907395898C10019993E
+S31AFE01090D61001A9121001C9947395899480003380000FF9081EA
+S31AFE0109220034B06100389801015198C10018994800019948001F
+S31AFE010937023CA0FE017D1D437838A508289801014898010149A2
+S31AFE01094C9801014A9801014B9801014C9801014D9801014E987B
+S31AFE01096101014F980101503861000838800044480000D53B80CC
+S31AFE01097600023B4101483F60000048001F0D7C7E1B787F23CB93
+S31AFE01098B783880012C7F45D37838C0004338E0004448000249BC
+S31AFE0109A048000AA1881B39582C00000040820028881D00012C2E
+S31AFE0109B50000004082001C881D00022C000000408200108BFD1D
+S31AFE0109CA00032C1F00004182001438600044480000BD38600075
+S31AFE0109DF004800003848001EA97C7E1850280307CF4081FFB09C
+S31AFE0109F47F80E3782C0000003B9CFFFF4181FF80386000444829
+S31AFE010A0900008D3D20000093E93C503860FFFF8001017C7C08C9
+S31AFE010A1E03A68321015C83410160836101648381016883A10114
+S31AFE010A336C83C1017083E10174382101784E8000203D20000092
+S31AFE010A4881293C5C2C09000041820024A00900047C00200040AD
+S31AFE010A5D82000C3860FFFF4E800020812900002C0900004082CC
+S31AFE010A72FFE43D20000080093C5C90693C5CB083000490A3000E
+S31AFE010A870890030000386000004E8000203D20000081293C5C95
+S31AFE010A9C396000002C0900004D8200207D2A4B78A00900047CF0
+S31AFE010AB10018004082001C2C0B00004182001080090000900B07
+S31AFE010AC6000048000008814900007D2B4B78812900002C0900B2
+S31AFE010ADB004082FFD03D20000091493C5C4E8000209421FFE817
+S31AFE010AF07C0802A69381000893A1000C93C1001093E1001490E8
+S31AFE010B0501001C7C7E1B7883FE000838000000A13F0006600025
+S31AFE010B1AFFFF7C090000817E00047C9C23784082000C38000082
+S31AFE010B2F00B01F0006A01F00047D635B78B00B0002A3BF00043E
+S31AFE010B44480008CD7C651B787FA4EB787FE3FB78480008512CDE
+S31AFE010B59030000408200603D20000081693C5C2C0B0000418284
+S31AFE010B6E0050A12B0004A01F00027C09000040820034A0BF00B2
+S31AFE010B8304800B00087D635B7838A5FFF87F86E378A0FF00003B
+S31AFE010B98389F00087C0803A64E8000217FC3F378480007D9482B
+S31AFE010BAD000018816B00002C0B00004082FFB87FC3F378480085
+S31AFE010BC207C18001001C7C0803A68381000883A1000C83C10007
+S31AFE010BD71083E10014382100184E8000209421FFD87C0802A665
+S31AFE010BEC930100089321000C93410010936100149381001893E8
+S31AFE010C01A1001C93C1002093E100249001002C7C9C2378281C5C
+S31AFE010C1605C07C791B787CB82B787CDA33787CFE3B78418100B0
+S31AFE010C2BA8386005EA480006ED7C7F1B794182009883BF000811
+S31AFE010C40381C0008837F0004B01F000CB3DD0000B35D0002A01B
+S31AFE010C551F000C392000007F85E378B01D0004B13D00067F243A
+S31AFE010C6ACB78387D00084BFFA6513D200000800939583960001F
+S31AFE010C7F11901B000C81380000997B0009913B0010A01D000420
+S31AFE010C947F63DB78B01B0002A39F000C480007717C651B787F43
+S31AFE010CA984E3787FA3EB78480006F5B07D00067F05C3787FE336
+S31AFE010CBEFB7838800011480004457FE3FB78480006B5800100F6
+S31AFE010CD32C7C0803A6830100088321000C8341001083610014A6
+S31AFE010CE88381001883A1001C83C1002083E10024382100284EDB
+S31AFE010CFD8000209421FFD87C0802A69381001893A1001C93C1B5
+S31AFE010D12002093E100249001002C7CBF2B787C7D1B787C9C23AD
+S31AFE010D27787CDE33787FE3FB783881000848001A252C030000E9
+S31AFE010D3C41800024A0DF0004A0FE00047FA3EB787F84E3783878
+S31AFE010D51A100084BFFFE91386000004800001C3C60FE013C80B3
+S31AFE010D66FE0138634FD838844FFC4BFFAD553860FFFF80010048
+S31AFE010D7B2C7C0803A68381001883A1001C83C1002083E10024BD
+S31AFE010D90382100284E8000209421FFE87C0802A6938100089363
+S31AFE010DA5A1000C93C1001093E100149001001C3F8000007CBFF4
+S31AFE010DBA2B783D200000807C3C607CDD33787CFE3B7893E93C9E
+S31AFE010DCF644BFFA4F13D20000081693C682C0B00004182001CC6
+S31AFE010DE4B3CB0004801D000039200000900B0000913C3C604831
+S31AFE010DF90000143C60FE013863500C7FE4FB784BFFACBD800130
+S31AFE010E0E001C7C0803A68381000883A1000C83C1001083E1008D
+S31AFE010E2314382100184E8000209421FFD07C0802A693410018A6
+S31AFE010E389361001C9381002093A1002493C1002893E1002C9058
+S31AFE010E4D010034A3A600047CBA2B787C7E1B787C9C23783CA014
+S31AFE010E62FE017CFF3B7838A50D98386100087FA4EB784BFFFB5B
+S31AFE010E77D12C0300004080000C3860FFFF48000084813F00046F
+S31AFE010E8C3C001062817F000060004DD37D2900161D6B03E8559A
+S31AFE010EA129D1BE7F6B4A143D4000003D2000003D60000093CA63
+S31AFE010EB63C6093893C64934B3C68480019CD7FBAEB787C7E1B69
+S31AFE010ECB783BE0FFFF3FA000003F800000480019B57C7E185066
+S31AFE010EE07C03D8404080001848000559801D3C602C000000403E
+S31AFE010EF582FFE483FC3C647F43D3784BFFFB957FE3FB78800122
+S31AFE010F0A00347C0803A6834100188361001C8381002083A10048
+S31AFE010F1F2483C1002883E1002C382100304E8000209421FFF07D
+S31AFE010F347C0802A693E1000C900100147C691B78880900002C1D
+S31AFE010F490000FF4082002C880900012C0000FF40820020880971
+S31AFE010F5E00022C0000FF4082001488090003386000012C00001D
+S31AFE010F73FF418200643FE000007D234B78389F395838A0000478
+S31AFE010F884BFFADAD2C0300004082000C38600001480000408805
+S31AFE010F9D1F3958389F39582C0000004082002C880400012C004F
+S31AFE010FB2000040820020880400022C0000004082001488040027
+S31AFE010FC703386000012C00000041820008386000008001001450
+S31AFE010FDC7C0803A683E1000C382100104E8000209421FFD87CFF
+S31AFE010FF10802A693A1001C93C1002093E100249001002C7C7E23
+S31AFE0110061B7883FE00047C9D2378387F00104BFFFF1D2C0300A8
+S31AFE01101B0041820020A09F00007FE3FB785484D6BA38A0000084
+S31AFE011030480003752C030000418200107FC3F378480003414863
+S31AFE0110450000A8801F000C813D0000A17D000490010008912113
+S31AFE01105A000CB1610010A13F0000A01F00025523D6BA7C030026
+S31AFE01106F50B01E000C881F00092C00000641820038418100108E
+S31AFE0110842C00000141820014480000582C00001141820038482E
+S31AFE01109900004C7C1F1A14901E00087FC3F378388100084800BC
+S31AFE0110AE05054800003C7C1F1A14901E00087FC3F378388100B5
+S31AFE0110C30848000AE5480000247C1F1A14901E00087FC3F3783C
+S31AFE0110D8388100084BFFFA114800000C7FC3F378480002998084
+S31AFE0110ED01002C7C0803A683A1001C83C1002083E1002438210A
+S31AFE01110200284E8000209421FFE07C0802A69361000C938100E9
+S31AFE0111171093A1001493C1001893E1001C900100247C7C1B782A
+S31AFE01112C83BC000480FC0008A13C000C7CFD38507D293A14B153
+S31AFE0111413C000CA01D000054E9352E5400053E60004000700048
+S31AFE011156F0FF7C004B78B01D000039200000993D00013D000017
+S31AFE01116B00A1283C6CA01C000CB13D0004B01D000239690001CD
+S31AFE011180B1683C6C3940000038000040989D0009981D0008B1F7
+S31AFE0111955D000AB15D00063D200000800939587CBB2B78901DC7
+S31AFE0111AA000C813B00007CE43B78913D00107FA3EB7838A00015
+S31AFE0111BF00480001E5B07D000A7F83E378389B000438A008009D
+S31AFE0111D448000371800100247C0803A68361000C8381001083EC
+S31AFE0111E9A1001483C1001883E1001C382100204E8000203D00B7
+S31AFE0111FE0000800839682C0000004C820020380000019008398A
+S31AFE01121368380000047C0903A63C8000003D2000013D60000137
+S31AFE01122881443C7038A9082C390B07DC38C005EA38E000007D83
+S31AFE01123D272A147120000239690002914800007C00002654002C
+S31AFE0112521FFE7C0000D07D6B00787D2900387D295B78912800A9
+S31AFE011267107D0A4378B0C8000E390A001438E705EC4200FFC429
+S31AFE01127C91443C704E8000209421FFE87C0802A6938100089372
+S31AFE011291A1000C93C1001093E100149001001C3D2000013BE97B
+S31AFE0112A607DC3BC000003F80FE017FFDFB7880DF0010A0FF0095
+S31AFE0112BB0EA11F000C813F00007FC4F3787FA5EB78387C50380E
+S31AFE0112D04BFFA7F53BDE00012C1E00033BFF00143BBD0014401D
+S31AFE0112E581FFD03D2000003C60FE0180893C70386350644BFF59
+S31AFE0112FAA7CD8001001C7C0803A68381000883A1000C83C1001C
+S31AFE01130F1083E10014382100184E8000203CA0000080653C7070
+S31AFE0113242C0300004D8200203CE00000814739603D2000008037
+S31AFE011339093964394A00017CC050503C8000008164395C8103DA
+S31AFE01134E0010800300003928001490053C707C065800912300AE
+S31AFE011363089103000438000000B003000C914739604C8100207B
+S31AFE01137890C4395C4E8000203D400000812A39603D60000080A6
+S31AFE01138D0B3C703929FFFF912A3960906B3C70900300004E80D3
+S31AFE0113A200203484FFFE41800018A00300003484FFFE7CA50208
+S31AFE0113B714386300024080FFF02C04FFFF408200108803000031
+S31AFE0113CC5400402E7CA5021454AB043E54A9843E380000007C5A
+S31AFE0113E1A95A146000FFFF7C0500004081000C3D25FFFF38A9EE
+S31AFE0113F600017CA928F85523C63E5463402E5520063E7C031BA3
+S31AFE01140B784E800020A123000EA003000CA16300107C004A14F2
+S31AFE011420A1430012892300097C005A147C005214A06300027CBA
+S31AFE011435004A147C601A144E8000209421FFD87C0802A693817B
+S31AFE01144A001893A1001C93C1002093E100249001002C3F800098
+S31AFE01145F003FA000003FC00000386005EA4BFFFEB17C7F1B7986
+S31AFE011474408200183C60FE01386350744BFFA6454BFFFE0148C4
+S31AFE011489000000809F00103861000838A005EA4BFFD289546059
+S31AFE01149E043E2C000000B07F000C41820074A0010014813C39A9
+S31AFE0114B3742C00080039290001913C3974418200182C00080685
+S31AFE0114C8418200347FE3FB784BFFFEB14BFFFF94813D396C8085
+S31AFE0114DD1F001039290001913D396C901F00047FE3FB783881AF
+S31AFE0114F2000E4BFFFAF94BFFFF70813E3970801F001039290063
+S31AFE01150701913E3970901F00047FE3FB7848000F9D4BFFFF503C
+S31AFE01151C7FE3FB784BFFFE618001002C7C0803A68381001883BE
+S31AFE011531A1001C83C1002083E10024382100284E8000209421D3
+S31AFE011546FFE87C0802A69001001C80040000A1440004900100CD
+S31AFE01155B08390100083D200000B148000439693C48A14B0004BC
+S31AFE011570B0A1001480093C48A0A3000C808300109001000EB13D
+S31AFE0115854100127D0343784BFFCF393D600000812B3978392910
+S31AFE01159A0001912B39788001001C7C0803A6382100184E8000C0
+S31AFE0115AF209421FFF07C0802A693C1000893E1000C90010014B1
+S31AFE0115C47C7F1B78807F00087C9E2378A00300002C00080040AC
+S31AFE0115D9820050A09F000C38A000004BFFFDC17C631B794082C6
+S31AFE0115EE003C813F000838A0000098690000817F0008B06B00E3
+S31AFE01160302807F0008A09F000C4BFFFD99813F00087FC5F37822
+S31AFE011618B06900027FE3FB78388000014BFFFAE57FE3FB784BC6
+S31AFE01162DFFFD55800100147C0803A683C1000883E1000C38217B
+S31AFE01164200104E8000209421FFD87C0802A69341001093610000
+S31AFE011657149381001893A1001C93C1002093E100249001002C20
+S31AFE01166C7C9B23787C7E1B78736000023B9E002C83BC00048385
+S31AFE011681FC00087CBA2B784182004438000018B01C000C813F83
+S31AFE011696000C396000065169E0063C000204913F000C6000056C
+S31AFE0116ABB490010008387F00143881000838A000044BFF9C0585
+S31AFE0116C038000000B01E001648000020A13E00163960000539C0
+S31AFE0116D5290014B13C000C801F000C5160E006901F000C801F29
+S31AFE0116EA000C396000005160C10E901F000C813E00542C1A00AD
+S31AFE0116FF00913F0004801E0050B17F0010901F00084082005402
+S31AFE011714A01E0012B01F0000A13E00149B7F000DB13F0002A070
+S31AFE0117291E00162C0000004182000C63600008981F000D3800B0
+S31AFE01173E05B4B01F000EB35F00123D20000080093958396000C7
+S31AFE01175306901D000C813E0008997D0009913D0010A01C000C31
+S31AFE0117687FA3EB78B01D0002A3BC000C4BFFFC9D7C651B787FD2
+S31AFE01177DA4EB787FE3FB784BFFFC21B07F00107F83E3783880BB
+S31AFE011792000638BE00084BFFF971801E00042C00000A408200EB
+S31AFE0117A7243C8000013CA0FE0138A5199C7FC6F378387E00185C
+S31AFE0117BC6084D4C048000B5D48000034881F000D7009000340FF
+S31AFE0117D1820010A01E00162C0000004182001C3CA0FE0138A5D5
+S31AFE0117E619747FC6F378387E0018388003E848000B298001003E
+S31AFE0117FB2C7C0803A683410010836100148381001883A1001C53
+S31AFE01181083C1002083E10024382100284E8000209421FFE07C53
+S31AFE0118250802A69361000C9381001093A1001493C1001893E1AD
+S31AFE01183A001C900100247C7C1B7883FC0008815C0004A0DF0051
+S31AFE01184F00A0FF0002807F000480BF000839000014B11C000C6E
+S31AFE0118643BEA0014801F000C39200005396000005120E00651E7
+S31AFE01187960C10E901F000C39200400B13F000EB17F0010B17FA0
+S31AFE01188E0012B0EA0014B0DF0002991F000D907F000890BF00C4
+S31AFE0118A3043D200000800939587C9B2378900A000C813B00009C
+S31AFE0118B838000006912A0010980A0009A13C000C7D435378B13D
+S31AFE0118CD2A0002A3BC000C4BFFFB3D7C651B787FA4EB787FE38C
+S31AFE0118E2FB784BFFFAC1B07F00107F83E3787F65DB78388000E9
+S31AFE0118F7064BFFF811800100247C0803A68361000C83810010A8
+S31AFE01190C83A1001483C1001883E1001C382100204E8000203D09
+S31AFE01192120000081293C74396000002C0900004D8200207D2ACE
+S31AFE0119364B787C0918004082001C2C0B000041820010800900C6
+S31AFE01194B00900B000048000008814900007D2B4B7881290000B8
+S31AFE0119602C0900004082FFD43D20000091493C744E800020943A
+S31AFE01197521FFF87C0802A69001000C3880000038A000014BFF9C
+S31AFE01198AFCC18001000C7C0803A6382100084E8000209421FFC9
+S31AFE01199FF87C0802A69001000C38000000900300044BFFFF71E4
+S31AFE0119B48001000C7C0803A6382100084E8000209421FFF07CF0
+S31AFE0119C90802A693E1000C900100147C7F1B78480000108003C6
+S31AFE0119DE0000901F00404BFFF99D807F00402C0300004082FFF1
+S31AFE0119F3EC800100147C0803A683E1000C382100104E80002065
+S31AFE011A089421FFE87C0802A693A1000C93C1001093E100149040
+S31AFE011A1D01001C7C7D1B7838000000901D0004387D0018480008
+S31AFE011A32097D7FA3EB784BFFFF8D7FA3EB784BFFFEE18001008A
+S31AFE011A471C7C0803A683A1000C83C1001083E1001438210018CF
+S31AFE011A5C4E8000208124000880E30050814900048009000CA11E
+S31AFE011A7164000C7D075051540036BA7D6058507D09021441819F
+S31AFE011A8600707C0A38507D6058517D08021440810060814300C2
+S31AFE011A9B407D275A142C0A0000380000009123005090040000D9
+S31AFE011AB041820030800A00002C0000004182001C7D4953788182
+S31AFE011AC5290000800900002C0000004082FFF47D2A4B78908AF0
+S31AFE011ADA0000480000109103004490830040916300483860009B
+S31AFE011AEF014E800020386000004E8000209421FFF07C0802A698
+S31AFE011B0493C1000893E1000C90010014812400087C7F1B788388
+S31AFE011B19C90008801F00547D20F0514081006C387F00184800CC
+S31AFE011B2E0881811F0054A15F00167D68F0505549043E7F8B48B3
+S31AFE011B43004FFEE3827C000026540007FE7C0000D07D29007871
+S31AFE011B587D6B00387D6B4B79408100307D2B50505525043E2C86
+S31AFE011B6D0500007C085A14901F0054B13F001641820014807F88
+S31AFE011B820034386300147C835A144BFF9735800100147C0803C7
+S31AFE011B97A683C1000883E1000C382100104E8000209421FFE0E7
+S31AFE011BAC7C0802A69361000C9381001093A1001493C100189388
+S31AFE011BC1E1001C900100247C7C1B78807C0004A01C000C83FC86
+S31AFE011BD60008B0030002A3BC000C7C9E23784BFFF82D7C651BAD
+S31AFE011BEB787FA4EB787FE3FB784BFFF7B12C0300003B60000051
+S31AFE011C00408203A03D20000083A93C744800000883BD00002C70
+S31AFE011C151D00004182037CA13D0012A01F00027C09000040825E
+S31AFE011C2AFFE8A13D00142C09000041820028A01F00007C090063
+S31AFE011C3F004082FFD07FC3F378389D000838A000044BFFA0E5C5
+S31AFE011C542C0300004082FFB8801D0004817E0004A13E00082C17
+S31AFE011C69000002917D000CB13D001041820024881F000D700933
+S31AFE011C7E0004418200187FA3EB784BFFFD817F83E3784BFFF683
+S31AFE011C93F14800031C813D00043809FFFF28000009418102FCED
+S31AFE011CA83D60FE01396B50985400103A7D4B002E3D20FE0139D1
+S31AFE011CBD2950987D4A4A147D4903A64E800420881F000D700949
+S31AFE011CD200024182004038000002901D0004813F0004A17F0024
+S31AFE011CE70039290001913D0050B17D0014801E00003920000029
+S31AFE011CFC901D0008B13D004C7FA3EB78B13D0016388000124844
+S31AFE011D110002247FC4F3787F83E3784BFFFB0548000280387DBE
+S31AFE011D26001848000685881F000D70090004418200103800007C
+S31AFE011D3B01901D00044800026070090002408202387009001032
+S31AFE011D5041820250813D0054807F0008392900017C03480040E1
+S31AFE011D6582023C38000004907D0054901D00044800022C881F39
+S31AFE011D7A000D83DD005070090010418200107FA3EB787F84E3CB
+S31AFE011D8F784BFFFD6D7FA3EB787F84E3784BFFFCC5881F000D6C
+S31AFE011DA47C7B1B787009000141820024807F0004801D00507CCE
+S31AFE011DB9030000408200143803000139200005901D0050913DD2
+S31AFE011DCE0004801D00507C00F00040820010A01D004C2C000097
+S31AFE011DE300418201BCA3FD00162C1F000040820024387D0018B2
+S31AFE011DF8480005B57FA3EB783880001038A000004BFFF841B374
+S31AFE011E0DFD004C4800019038000001B01D004C48000184881FD3
+S31AFE011E22000D70090010418201787FA3EB787F84E3784BFFFCAB
+S31AFE011E37C9813D0054801F0008392900017C00480040820158CD
+S31AFE011E4C38000000901D00047FA3EB784BFFFAC94800014488EC
+S31AFE011E611F000D70090010418200607FA3EB787F84E3784BFF62
+S31AFE011E76FC89813D0054801F0008392900017C0048004082002B
+S31AFE011E8B40881F000D700900014182002C813D00503800000A90
+S31AFE011EA039290001913D0050901D00047FA3EB78388000103871
+S31AFE011EB5A000004BFFF7914800000C38000008901D0004881FB5
+S31AFE011ECA000D70090001418200D0387D0018480004D5813D0038
+S31AFE011EDF503800000939290001913D0050901D00047FA3EB78A1
+S31AFE011EF4388000114800003C7FA3EB787F84E3784BFFFB5D887A
+S31AFE011F091F000D7C7B1B78700900014182008C813D00503800F9
+S31AFE011F1E000A39290001913D0050901D00047FA3EB7838800030
+S31AFE011F331038A000004BFFF71148000064881F000D7009001071
+S31AFE011F48418200587FA3EB787F84E3784BFFFBA9813D00548001
+S31AFE011F5D1F0008392900017C00480040820038387D001848000D
+S31AFE011F72043D3800000A901D0004480000247FA3EB7838800078
+S31AFE011F870038A000014BFFF6BD480000107FC4F3787F83E37807
+S31AFE011F9C4BFFF8852C1B00004082000C7F83E3784BFFF3D58060
+S31AFE011FB10100247C0803A68361000C8381001083A1001483C144
+S31AFE011FC6001883E1001C382100204E8000209421FFF87C0802D0
+S31AFE011FDBA69001000C4BFFF461480004218001000C7C0803A6E3
+S31AFE011FF0382100084E8000209421FFE87C0802A6938100089311
+S31AFE012005A1000C93C1001093E100149001001C7C7D1B787C9CD7
+S31AFE01201A23783880000038A006444BFF93753D600000810B3C80
+S31AFE01202F74381D006C395D0058901D0034915D0030392000011B
+S31AFE012044380005EA93AB3C74913D0004B39D0012B01D003A91A1
+S31AFE0120591D0000915D003C386000008001001C7C0803A68381C0
+S31AFE01206E000883A1000C83C1001083E10014382100184E800015
+S31AFE012083209421FFF07C0802A693E1000C900100147C7F1B78A0
+S31AFE012098480000084BFFFF39801F00042C00000041820010A01A
+S31AFE0120AD1F00162C0000004082FFE8800100147C0803A683E1E9
+S31AFE0120C2000C382100104E8000209421FFF07C0802A693E1005D
+S31AFE0120D70C900100147C7F1B784BFFFFA5817F000469690004E8
+S31AFE0120EC200900007D20491469600002214000007C0A01147D73
+S31AFE0121012A03794182002038000007901F00047FE3FB783880BC
+S31AFE012116001138A000004BFFF52D480000242C0B0005408200F0
+S31AFE01212B1C38000006901F00047FE3FB783880001138A0000017
+S31AFE0121404BFFF5097FE3FB784BFFF87D800100147C0803A68364
+S31AFE012155E1000C382100104E8000209421FFE87C0802A6938150
+S31AFE01216A000893A1000C93C1001093E100149001001C7CBE2B15
+S31AFE01217F797C7F1B787C9D237840810010801F00482C000000A7
+S31AFE0121944082001438600000480000B8907F0048480000AC3B3D
+S31AFE0121A980000048000064809F00447FA3EB784BFF9109807F25
+S31AFE0121BE0040801F0048812300007FC0F050913F00407F9C0290
+S31AFE0121D3147FBD02144BFFF1A9807F00402C0300004182FFBCBC
+S31AFE0121E881630008A123000C800B000C540036BA7D2048509180
+S31AFE0121FD3F0048800B000C540036BA7D6B0214917F00442C1ECA
+S31AFE01221200004182003C80BF00487C1E28004080FF90809F00FC
+S31AFE012227447FA3EB787FC5F3784BFF9091813F0044801F0048CF
+S31AFE01223C7D29F2147C1E0050901F0048913F00447F9CF2147F47
+S31AFE01225183E3788001001C7C0803A68381000883A1000C83C14B
+S31AFE012266001083E10014382100184E8000209421FFF07C08024D
+S31AFE01227BA693C1000893E1000C900100147CBE2B797C7F1B78B6
+S31AFE012290807F00344081006C813F00043929FFFC280900014041
+S31AFE0122A581000C3860FFFF48000058A01F00162C000000408299
+S31AFE0122BA0048213E05B47D2949107D294BB87D2048F87FC94895
+S31AFE0122CF38700005B47D3E0378386300147FC5F3784BFF8FE146
+S31AFE0122E47FE3FB78B3DF00163880001038A000004BFFF3557FB2
+S31AFE0122F9C3F3784800000838600000800100147C0803A683C1AF
+S31AFE01230E000883E1000C382100104E8000209421FFE87C0802C4
+S31AFE012323A69381000893A1000C93C1001093E100149001001C05
+S31AFE0123387C7F1B787CBD2B787CDC3378909F0004480005453D1C
+S31AFE01234D20000081293C78907F00082C09000093BF000C939F1C
+S31AFE0123620010418200187C09F80041820020812900002C090037
+S31AFE012377004082FFF03D20000080093C7893E93C78901F000022
+S31AFE01238C8001001C7C0803A68381000883A1000C83C10010835A
+S31AFE0123A1E10014382100184E8000203D20000081293C7839409A
+S31AFE0123B600002C0900004D8200207D2B4B787C0918004082001F
+S31AFE0123CB202C0A00004182001080090000900A00004800001C48
+S31AFE0123E081690000480000147D2A4B78812900002C0900004014
+S31AFE0123F582FFD03D20000091693C784E8000209421FFE87C0864
+S31AFE01240A02A693A1000C93C1001093E100149001001C3D2000DA
+S31AFE01241F0083E93C783BC000002C1F00003FA000004182006437
+S31AFE01243448000459801F0008813F00047C6018507C03484041F2
+S31AFE01244980003C2C1E000041820010801F0000901E000048000B
+S31AFE01245E000C801F0000901D3C78801F000C807F00107C080317
+S31AFE012473A63BC000004E80002183FD3C784800000C7FFEFB7847
+S31AFE01248883FF00002C1F00004082FFA48001001C7C0803A683BB
+S31AFE01249DA1000C83C1001083E10014382100184E800020942198
+S31AFE0124B2FFE87C0802A69381000893A1000C93C1001093E100C9
+S31AFE0124C7149001001C7C7D1B7883FD0004A13F0002A01F000089
+S31AFE0124DC69290800216900007D2B491468000001216000007C57
+S31AFE0124F10B01147C0B4839418200D83FC00000387F0018389E6A
+S31AFE012506395838A000044BFF98292C030000408200BCA01F00D7
+S31AFE01251B062C00000140820064813F000E38000002B01F000670
+S31AFE012530913F0018801F0008391F0008A1280004901F001238DC
+S31AFE0125459F0012B1240004801E39583D200000901F000E8149DF
+S31AFE01255A3C4839293C48A1690004915F0008B1680004380000A2
+S31AFE01256F1CB01D000C7FA3EB7838A008064BFFEFC94800005058
+S31AFE0125842C000002408200483FC00001801E1FDC3B9E1FDC2C6C
+S31AFE01259900000041820034807C0008389F000E38A000044BFF22
+S31AFE0125AE97897C631B794082001CA01F000C817F0008813C0012
+S31AFE0125C304B009000491690000907E1FDC7FA3EB784BFFEDADD1
+S31AFE0125D88001001C7C0803A68381000883A1000C83C10010830C
+S31AFE0125EDE10014382100184E8000209421FFD87C0802A69361D4
+S31AFE01260200149381001893A1001C93C1002093E1002490010091
+S31AFE0126172C7C7F1B787C9D23783860002A4BFFECF97C7E1B79BC
+S31AFE01262C40820018480001007FC3F3784BFFED49386000004864
+S31AFE0126410000F4817E000439200004992B0005394000013900AF
+S31AFE012656080038000006980B0004B14B0000B14B0006B10B00C3
+S31AFE01266B023D200000800939583D400000900B000E392A3C48CF
+S31AFE012680A1090004800A3C48B10B000C900B0008813F00003D1C
+S31AFE012695400001912B0018396A1FDC380000FF93EB0008980122
+S31AFE0126AA000D93AB000439200001912A1FDC980100089801007D
+S31AFE0126BF099801000A9801000B9801000C3BA000073F8000016A
+S31AFE0126D43B60001CB37E000C7FC3F3783881000838A008064B59
+S31AFE0126E9FFEE5D480001A17C7F1B78480000144BFFED49801C9D
+S31AFE0126FE1FDC2C0000004182FF30480001857C7F18502803004D
+S31AFE012713F94081FFE47FA0EB782C0000003BBDFFFF4181FFB4F6
+S31AFE0127287FC3F3784BFFEC553860FFFF8001002C7C0803A6836C
+S31AFE01273D6100148381001883A1001C83C1002083E1002438216C
+S31AFE01275200284E8000209421FFD87C0802A6930100089321004F
+S31AFE0127670C93410010936100149381001893A1001C93C1002070
+S31AFE01277C93E100249001002C3D2000013B291FE83B1900967CBF
+S31AFE0127917B1B787C9C23787F3DCB783B4000007FBEEB787F6371
+S31AFE0127A6DB787FC4F37838A000044BFF95852C0300007F5FD3F8
+S31AFE0127BB78418200383BBE000A7C1DC0003B5F000A4081FFD4FD
+S31AFE0127D0801B00007F63DB78901C0000389C00044BFFFE192C0E
+S31AFE0127E5030000408000283860FFFF4800006C7C1AC82EA13D3B
+S31AFE0127FA0008817D0004B13C0008901C0000917C0004480000C1
+S31AFE01280F4C3CC000008126397C80FC0000390900011D29000AFC
+S31AFE0128243D600001A15C0008801C0004396B1FE87CE9592E7D43
+S31AFE012839295A142C080010B1490008900900049106397C4082FD
+S31AFE01284E000C380000009006397C386000008001002C7C080315
+S31AFE012863A6830100088321000C83410010836100148381001891
+S31AFE01287883A1001C83C1002083E10024382100284E8000209417
+S31AFE01288D21FFF87C0802A69001000C3D200000392932008009D6
+S31AFE0128A20048386003E87C0803A64E8000213D200000806939B6
+S31AFE0128B78038630001906939808001000C7C0803A6382100081E
+S309FE0128CC4E80002015
+S31AFE0128D03C746F7069633E0048656C702061626F7574206865A4
+S31AFE0128E56C703F0000000068656C70000000005B2D77203C7446
+S31AFE0128FA696D656F75743E5D205B656E7472795D00004578656A
+S31AFE01290F6375746520636F64652061742061206C6F6361746930
+S31AFE0129246F6E0000676F00002D62203C6C6F636174696F6E3E64
+S31AFE012939205B2D6C203C6C656E6774683E5D00446973706C619A
+S31AFE01294E7920286865782064756D702920612072616E6765209C
+S31AFE0129636F66206D656D6F72790000000064756D700000000016
+S31AFE0129785B4F4E207C204F46465D00004D616E616765206D6122
+S31AFE01298D6368696E6520636163686573000000636163686500AE
+S31AFE0129A200000A526564426F6F7428746D2920646562756720E9
+S31AFE0129B7656E7669726F6E6D656E74202D206275696C7420257F
+S31AFE0129CC732C2025730A000030373A34303A3038000000004F9A
+S31AFE0129E16374203237203230303000506C6174666F726D3A20FB
+S31AFE0129F6257320282573292025730A0000004D6F746F726F6C78
+S31AFE012A0B61204D425800000000506F77657250432038363000EB
+S31AFE012A2000000000436F7079726967687420284329203230307D
+S31AFE012A35302C20526564204861742C20496E632E0A0A00524178
+S31AFE012A4A4D3A2025702D25700A003D3D20457865637574696E8B
+S31AFE012A5F6720626F6F742073637269707420696E2025642E257A
+S31AFE012A74303364207365636F6E6473202D20656E746572205E69
+S31AFE012A894320746F2061626F72740A00000000526564426F6F70
+S31AFE012A9E743E200000002A2A204572726F723A20496C6C656787
+S31AFE012AB3616C20636F6D6D616E643A2025730A00006F6E000064
+S31AFE012AC86F666600496E76616C6964206361636865206D6F647E
+S31AFE012ADD653A2025730A00636163686573203F0A000000257316
+S31AFE012AF20A20202025732025730A000000006261736520616486
+S31AFE012B076472657373000000006C656E677468000044756D707B
+S31AFE012B1C2077686174205B6C6F636174696F6E5D3F0A000077DA
+S31AFE012B316169742074696D656F7574000000007374617274698E
+S31AFE012B466E6720616464726573730000000041626F757420740B
+S31AFE012B5B6F20737461727420657865637574696F6E206174209A
+S31AFE012B702570202D2061626F72742077697468205E4320776994
+S31AFE012B857468696E202564207365636F6E64730A0000006574E8
+S31AFE012B9A68300000000071756963635F657468000000515549E5
+S31AFE012BAF43432045746865726E65743A204E6F2066726565202E
+S31AFE012BC4786D697420627566666572730A000000000000004CD2
+S31AFE012BD96F616420612066696C65006C6F616400000000454C3C
+S31AFE012BEE4620696D61676573206E6F7420737570706F727465DE
+S31AFE012C03640A000000496E76616C696420532D7265636F726463
+S31AFE012C18206174206F66667365742025702C20696E7075743A9B
+S31AFE012C2D2025630A00000042616420532D7265636F7264206332
+S31AFE012C426F756E74206174206F66667365742025700A00000057
+S31AFE012C570041646472657373206F6666736574203D2025700ADA
+S31AFE012C6C00000000417474656D707420746F206C6F6164205339
+S31AFE012C812D7265636F7264206461746120746F206164647265B0
+S31AFE012C9673733A202570205B6E6F7420696E2052414D5D0A0025
+S31AFE012CAB002A2A2A205761726E696E672120436865636B737594
+S31AFE012CC06D206661696C757265202D20416464723A20256C783A
+S31AFE012CD52C202530326C58203C3E202530326C580A0000456E8C
+S31AFE012CEA74727920706F696E743A2025702C2061646472657379
+S31AFE012CFF732072616E67653A2025702D25700A0000496E7661D2
+S31AFE012D146C696420532D7265636F7264206174206F6666736525
+S31AFE012D2974203078256C782C20747970653A2025780A0000003C
+S31AFE012D3E0000FFFF27A4FFFF2608FFFF2608FFFF2608FFFF2709
+S31AFE012D538CFFFF278CFFFF278CFFFF2754FFFF2754FFFF27540D
+S31AFE012D68256308000A000000766572626F7365006C6F61642001
+S31AFE012D7D72617720646174610000006C6F616420616464726578
+S31AFE012D92737300000000646F776E6C6F6164206D6F64652028DC
+S31AFE012DA754465450206F722078797A4D4F44454D2900000000AD
+S31AFE012DBC686F7374206E616D6520284950206164647265737397
+S31AFE012DD129000066696C65206E616D65000000496E76616C69FB
+S31AFE012DE66420495020616464726573733A2025730A006D6F6474
+S31AFE012DFB656D000000496E76616C696420276D6F6465273A20B8
+S31AFE012E1025730A00746674700000000054465450206D6F646545
+S31AFE012E25207265717569726573206120776F726B696E67206ED3
+S31AFE012E3A6574776F726B0A00000046696C65206E616D65206D0A
+S31AFE012E4F697373696E670A000075736167653A206C6F616420A3
+S31AFE012E6425730A0043616E2774206C6F616420272573273A20E5
+S31AFE012E7925730A00000000526177206C6F61642072657175696D
+S31AFE012E8E7265732061206D656D6F727920616464726573730A96
+S31AFE012EA3005261772066696C65206C6F616465642025702D259B
+S31AFE012EB8700A0000454C4600556E7265636F676E697A656420A2
+S31AFE012ECD696D61676520747970653A20256C780A0000007B63BB
+S31AFE012EE26D64737D00004D616E61676520464C41534820696D48
+S31AFE012EF76167657300666973005B2D6C5D000000004D616E6111
+S31AFE012F0C676520636F6E66696775726174696F6E206B65707473
+S31AFE012F2120696E20464C415348206D656D6F727900000066638F
+S31AFE012F366F6E666967005B2D665D00000000496E697469616C59
+S31AFE012F4B697A6520464C41534820496D6167652053797374655B
+S31AFE012F606D205B4649535D00696E6974000000005B2D635D0034
+S31AFE012F75000000446973706C617920636F6E74656E7473206F4F
+S31AFE012F8A6620464C41534820496D6167652053797374656D2071
+S31AFE012F9F5B4649535D000000006C6973740000000000000000C2
+S31AFE012FB4446973706C61792066726565205B617661696C616220
+S31AFE012FC96C655D206C6F636174696F6E732077697468696E2001
+S31AFE012FDE464C41534820496D6167652053797374656D205B4602
+S31AFE012FF349535D000066726565000000002D66203C666C617394
+S31AFE013008685F616464723E202D6C203C6C656E6774683E0045F4
+S31AFE01301D7261736520464C41534820636F6E74656E74730000D2
+S31AFE013032000065726173650000006E616D6500000000446973B3
+S31AFE013047706C617920616E20696D6167652066726F6D20464C21
+S31AFE01305C41534820496D6167652053797374656D205B46495379
+S31AFE0130715D000064656C65746500005B2D62203C6D656D6F720F
+S31AFE013086795F6C6F61645F616464726573733E5D205B2D635D70
+S31AFE01309B206E616D65000000004C6F616420696D616765206631
+S31AFE0130B0726F6D20464C41534820496D616765205379737465EF
+S31AFE0130C56D205B4649535D20696E746F2052414D0000006C6F15
+S31AFE0130DA6164000000002D62203C6D656D5F626173653E202D68
+S31AFE0130EF6C203C696D6167655F6C656E6774683E205B2D7320A2
+S31AFE0131043C646174615F6C656E6774683E5D205B2D66203C668F
+S31AFE0131196C6173685F616464723E5D205B2D65203C656E74723D
+S31AFE01312E795F706F696E743E5D205B2D72203C72616D5F616410
+S31AFE01314364723E5D203C6E616D653E00004372656174652061F1
+S31AFE0131586E20696D6167650063726561746500002A2A2A206951
+S31AFE01316D6E76616C696420276669732720636F6D6D616E643AE1
+S31AFE0131822025730A0000666973200000000066756C6C20696E65
+S31AFE013197697469616C697A6174696F6E2C20657261736573201E
+S31AFE0131AC616C6C206F6620666C6173680000000041626F7574B2
+S31AFE0131C120746F20696E697469616C697A65205B666F726D610F
+S31AFE0131D6745D20464C41534820696D6167652073797374656D98
+S31AFE0131EB002A2A2041626F727465640A002A2A2A20496E697459
+S31AFE01320069616C697A6520464C41534820496D616765205379B9
+S31AFE0132157374656D0A0000202020696E697469616C697A6174DA
+S31AFE01322A696F6E206661696C65642025703A202578282573292A
+S31AFE01323F0A00000000202020205761726E696E673A206465767C
+S31AFE01325469636520636F6E74656E7473206E6F74206572617365
+S31AFE01326965642C20736F6D6520626C6F636B73206D6179206EEF
+S31AFE01327E6F7420626520757361626C650A00526564426F6F7417
+S31AFE01329300526564426F6F745B6261636B75705D0052656442E7
+S31AFE0132A86F6F7420636F6E66696700004649532064697265631B
+S31AFE0132BD746F72790000004572726F722077726974696E6720DB
+S31AFE0132D2696D6167652064657363726970746F727320617420F8
+S31AFE0132E725703A202578282573290A0000646973706C61792038
+S31AFE0132FC636865636B73756D730000004E616D652020202020D1
+S31AFE013311202020202020202020464C4153482061646472202019
+S31AFE013326202573202020204C656E677468202020202020456E80
+S31AFE01333B74727920706F696E740A000000436865636B73756D92
+S31AFE013350000000004D656D206164647200000000252D3136735D
+S31AFE013365202030782530386C5820202030782530386C5820207C
+S31AFE01337A30782530386C58202030782530386C580A002020308D
+S31AFE01338F782530386C58202E2E2030782530386C580A000000BC
+S31AFE0133A46D656D6F727920626173652061646472657373007243
+S31AFE0133B9616D2062617365206164647265737300000000656E98
+S31AFE0133CE74727920706F696E74206164647265737300464C4163
+S31AFE0133E35348206D656D6F72792062617365206164647265732E
+S31AFE0133F873000000696D616765206C656E677468205B696E2031
+S31AFE01340D464C4153485D00696D6167652073697A65205B6163BD
+S31AFE0134227475616C20646174615D0000000066696C65206E6134
+S31AFE0134376D65000000696E76616C696420617267756D656E743F
+S31AFE01344C73000000726571756972656420706172616D65746523
+S31AFE01346172206D697373696E670000496E76616C696420464C4C
+S31AFE01347641534820696D6167652073697A652F6C656E677468B1
+S31AFE01348B20636F6D62696E6174696F6E00496E76616C6964208D
+S31AFE0134A0464C41534820616464726573733A20257020282573CF
+S31AFE0134B5290A0020202076616C69642072616E67652069732011
+S31AFE0134CA25702D25700A000000002A2A205741524E494E473AC3
+S31AFE0134DF2052414D20616464726573733A202570206D61792057
+S31AFE0134F4626520696E76616C69640A004E616D652069732074D5
+S31AFE0135096F6F206C6F6E672C206D757374206265206C65737327
+S31AFE01351E207468616E2025642063686172730A00000043616ED2
+S31AFE0135332774206C6F6361746520256C64206279746573206669
+S31AFE01354872656520696E20464C4153480A000000496D616765BB
+S31AFE01355D20666F756E642C2062757420464C41534820616464AA
+S31AFE0135727265737320696E636F72726563740A000000496D6178
+S31AFE013587676520666F756E642C20627574204C454E4754482089
+S31AFE01359C697320696E636F72726563740A000000416E20696DA1
+S31AFE0135B1616765206E616D6564202725732720657869737473E8
+S31AFE0135C6000043616E27742070726F6772616D2074686973202E
+S31AFE0135DB726567696F6E202D20636F6E7461696E7320636F6430
+S31AFE0135F06520696E20757365210A000043616E277420657261C8
+S31AFE013605736520726567696F6E2061742025703A202578282541
+S31AFE01361A73290A00000043616E27742070726F6772616D207299
+S31AFE01362F6567696F6E2061742025703A202578282573290A00DB
+S31AFE0136444572726F722065726173696E672061742025703A2055
+S31AFE0136592578282573290A000000004572726F722070726F67E5
+S31AFE01366E72616D6D696E672061742025703A20257828257329CD
+S31AFE0136830A000000006C656E67746800006D697373696E672087
+S31AFE013698617267756D656E7400000000696D616765206E616D56
+S31AFE0136AD65000044656C65746520696D61676520272573270022
+S31AFE0136C200004E6F20696D616765202725732720666F756E64CC
+S31AFE0136D70A000000006D656D6F7279205B6C6F61645D206261DB
+S31AFE0136EC736520616464726573730000646973706C617920636D
+S31AFE0137016865636B73756D000000004E6F742061206C6F61644C
+S31AFE01371661626C6520696D6167650A0000002A2A205761726ECC
+S31AFE01372B696E67202D20636865636B73756D206661696C7572E3
+S31AFE013740652E202073746F7265643A202530386C782C20636F22
+S31AFE0137556D70757465643A202530386C780A00436865636B73A5
+S31AFE01376A756D3A202530386C780A00000000464C4153483A20C6
+S31AFE01377F64726976657220696E6974206661696C6564212C20DE
+S31AFE0137947374617475733A2025780A00464C4153483A20257019
+S31AFE0137A9202D2025702C20256420626C6F636B73206F66202557
+S31AFE0137BE7020627974657320656163682E0A00000000746F6FFF
+S31AFE0137D32066657720617267756D656E7473000000756E7265CA
+S31AFE0137E8636F676E697A656420636F6D6D616E64000000005223
+S31AFE0137FD756E2073637269707420617420626F6F740000626F80
+S31AFE0138126F745F73637269707400426F6F74207363726970747C
+S31AFE01382700626F6F745F7363726970745F6461746100000000E6
+S31AFE01383C426F6F74207363726970742074696D656F75742028BA
+S31AFE013851313030306D73207265736F6C7574696F6E2900626F4E
+S31AFE0138666F745F7363726970745F74696D656F75740025733A39
+S31AFE01387B200000000025732000747275650000000066616C73F5
+S31AFE013890650000002564200030782530325800003A000000202F
+S31AFE0138A50000003F3F00000A0000002E2E2025730A0000456EB0
+S31AFE0138BA746572207363726970742C207465726D696E617465DF
+S31AFE0138CF207769746820656D707479206C696E650A00000000E2
+S31AFE0138E43E3E2000FFFEFA98FFFEFABCFFFEFB38FFFEFB44FF81
+S31AFE0138F9FEFAD0FFFEFAECFFFEFC4CFFFEFC60FFFEFDD4FFFEA1
+S31AFE01390EFD24FFFEFC7CFFFEFCC0FFFEF918FFFEF918FFFEF93E
+S31AFE01392328FFFEF930FFFEF918FFFEF9206C69737420636F6EFC
+S31AFE01393866696775726174696F6E206F6E6C79002A2A20696E10
+S31AFE01394D76616C696420656E7472790A00000055706461746591
+S31AFE01396220526564426F6F74206E6F6E2D766F6C6174696C6584
+S31AFE01397720636F6E66696775726174696F6E0000004572726F06
+S31AFE01398C722077726974696E6720636F6E66696720646174613B
+S31AFE0139A12061742025703A202578282573290A00000000000078
+S31AFE0139B60000FFFEF6D0FFFEF730FFFEF6E8FFFEF6ECFFFEF762
+S31AFE0139CB00FFFEF7205265717565737420666F7220636F6E66B8
+S31AFE0139E069672076616C75652027257327202D2077726F6E6720
+S31AFE0139F520747970650A0043616E27742066696E6420636F6EFE
+S31AFE013A0A6669672076616C756520272573270A0000000000001F
+S31AFE013A1F00FFFEF4C0FFFEF4C0FFFEF524FFFEF4E0FFFEF4C093
+S31AFE013A34FFFEF4CC464C41534820636F6E666967757261746992
+S31AFE013A496F6E20636865636B73756D206572726F72206F7220A8
+S31AFE013A5E696E76616C6964206B65790A000000000000FFFF28CE
+S31AFE013A7378FFFF2878FFFF2878FFFF2878FFFF2878FFFF2878AB
+S31AFE013A88FFFF2878FFFF2878FFFF2878FFFF2878FFFF2878FF0F
+S31AFE013A9DFF2878FFFF2878FFFF2878FFFF2878FFFF2878FFFFFA
+S31AFE013AB22898FFFF28B8FFFF28D8FFFF28F8FFFF2918FFFF29DA
+S31AFE013AC77CFFFF297CFFFF297CFFFF297CFFFF2938FFFF2958A2
+S31AFE013ADCFFFF2958FFFF2958FFFF2958FFFF2958FFFF2958FF56
+S31AFE013AF1FF2958FFFF2958FFFF2958FFFF2958FFFF2958FFFF41
+S31AFE013B062958FFFF2958FFFF2958FFFF2958FFFF2958FFFF2901
+S31AFE013B1B58FFFF2958FFFF2958FFFF2958FFFF2958FFFF2958BD
+S31AFE013B30FFFF2958FFFF2958FFFF2958FFFF2958FFFF2958FF01
+S31AFE013B45FF2958FFFF2958FFFF2958FFFF2958FFFF2958FFFFEC
+S31AFE013B5A2938FFFF2938FFFF2938FFFF2938FFFF2938FFFF294D
+S31AFE013B6F38FFFF2938FFFF2938FFFF2938FFFF2938FFFF293829
+S31AFE013B84FFFF2938FFFF2938FFFF2938FFFF2938FFFF2938FF4D
+S31AFE013B99FF28B0FFFF28B0FFFF28D4FFFF28F8FFFF28F8FFFF31
+S31AFE013BAE2938FFFF2938FFFF2938FFFF2938FFFF291CFFFF2915
+S31AFE013BC338FFFF2938FFFF2938FFFF2938FFFF2938FFFF2938D5
+S31AFE013BD8FFFF2938FFFF2938FFFF2938FFFF2938FFFF2938FFF9
+S31AFE013BEDFF2938FFFF2938FFFF2938FFFF2938FFFF2938FFFFE4
+S31AFE013C022938FFFF2938FFFF2938FFFF2938FFFF2938FFFF29A4
+S31AFE013C1738FFFF2938FFFF2938FFFF2938FFFF2938FFFF293880
+S31AFE013C2CFFFF2938FFFF2938FFFF2938FFFF2938FFFF2938FFA4
+S31AFE013C41FF286CFFFF286CFFFF286CFFFF286CFFFF286CFFFF90
+S31AFE013C56286CFFFF286CFFFF286CFFFF286CFFFF286CFFFF2852
+S31AFE013C6B6CFFFF286CFFFF286CFFFF286CFFFF286CFFFF286CF9
+S31AFE013C80FFFF288CFFFF28ACFFFF28CCFFFF28ECFFFF290CFF70
+S31AFE013C95FF2970FFFF2970FFFF2970FFFF2970FFFF292CFFFF67
+S31AFE013CAA294CFFFF294CFFFF294CFFFF294CFFFF294CFFFF2998
+S31AFE013CBF4CFFFF294CFFFF294CFFFF294CFFFF294CFFFF294C60
+S31AFE013CD4FFFF294CFFFF294CFFFF294CFFFF294CFFFF294CFF98
+S31AFE013CE9FF294CFFFF294CFFFF294CFFFF294CFFFF294CFFFF83
+S31AFE013CFE294CFFFF294CFFFF294CFFFF294CFFFF294CFFFF2944
+S31AFE013D134CFFFF294CFFFF294CFFFF294CFFFF294CFFFF294C0B
+S31AFE013D283031323334353637383961626364656600000000001F
+S31AFE013D3D000000503031004F4B000065436F7320474442207317
+S31AFE013D5274756273205B7769746820526564426F6F745D202DE9
+S31AFE013D67206275696C74204F63742032372032303030202F20E2
+S31AFE013D7C30373A33393A343100000000453031004530330045EE
+S31AFE013D9130320042303100FFFF3F54FFFF47BCFFFF3FF8FFFF4E
+S31AFE013DA6467CFFFF44CCFFFF47BCFFFF47BCFFFF47BCFFFF41F1
+S31AFE013DBB84FFFF464CFFFF47BCFFFF47BCFFFF47BCFFFF47BCD6
+S31AFE013DD0FFFF4280FFFF47BCFFFF47BCFFFF4184FFFF3FDCFF3C
+S31AFE013DE5FF47BCFFFF44CCFFFF4664FFFF47BCFFFF47BCFFFF0C
+S31AFE013DFA47BCFFFF427CFFFF47BCFFFF47BCFFFF47BCFFFF47A8
+S31AFE013E0FBCFFFF47BCFFFF47BCFFFF47BCFFFF47BCFFFF47BCD8
+S31AFE013E24FFFF4748FFFF44CCFFFF3F98FFFF47BCFFFF47BCFF13
+S31AFE013E39FF3FE8FFFF47BCFFFF47BCFFFF47BCFFFF462CFFFFD8
+S31AFE013E4E47BCFFFF4198FFFF47BCFFFF47BCFFFF47BCFFFF3F40
+S31AFE013E63D0FFFF4644FFFF44CC00000000303132333435363743
+S31AFE013E7838396162636465660000000030313233343536373896
+S31AFE013E8D3941424344454600000000FFFF6718FFFF6718FFFF55
+S31AFE013EA26718FFFF6718FFFF6718FFFF6718FFFF6718FFFF672E
+S31AFE013EB718FFFF6718FFFF6718FFFF6718FFFF6718FFFF671868
+S31AFE013ECCFFFF6718FFFF6718FFFF6718FFFF6658FFFF6658FFEE
+S31AFE013EE1FF668CFFFF66C0FFFF66C0FFFF6718FFFF6718FFFF96
+S31AFE013EF66718FFFF6718FFFF66F4FFFF6718FFFF6718FFFF67FF
+S31AFE013F0B18FFFF6718FFFF6718FFFF6718FFFF6718FFFF671813
+S31AFE013F20FFFF6718FFFF6718FFFF6718FFFF6718FFFF6718FF17
+S31AFE013F35FF6718FFFF6718FFFF6718FFFF6718FFFF6718FFFF02
+S31AFE013F4A6718FFFF6718FFFF6718FFFF6718FFFF6718FFFF6785
+S31AFE013F5F18FFFF6718FFFF6718FFFF6718FFFF6718FFFF6718BF
+S31AFE013F74FFFF6718FFFF6718FFFF6718FFFF66CCFFFF66CCFF5D
+S31AFE013F89FF66CCFFFF66CCFFFF66CCFFFF66CCFFFF66CCFFFF2F
+S31AFE013F9E66CCFFFF66CCFFFF66CCFFFF66CCFFFF66CCFFFF66B3
+S31AFE013FB3CCFFFF66CCFFFF66CCFFFF66CCFFFF66F4FFFF6718C3
+S31AFE013FC8FFFF673CFFFF6760FFFF6784FFFF67F0FFFF67F0FFE7
+S31AFE013FDDFF67F0FFFF67F0FFFF67A8FFFF67C8FFFF67C8FFFFBA
+S31AFE013FF267C8FFFF67C8FFFF67C8FFFF67C8FFFF67C8FFFF676D
+S31AFE014007C8FFFF67C8FFFF67C8FFFF67C8FFFF67C8FFFF67C8F6
+S31AFE01401CFFFF67C8FFFF67C8FFFF67C8FFFF67C8FFFF67C8FFAA
+S31AFE014031FF67C8FFFF67C8FFFF67C8FFFF67C8FFFF67C8FFFF95
+S31AFE01404667C8FFFF67C8FFFF67C8FFFF67C8FFFF67C8FFFF6718
+S31AFE01405BC8FFFF67C8FFFF67C8FFFF67C8FFFF6748FFFF6748A2
+S31AFE014070FFFF6748FFFF6748FFFF6748FFFF6748FFFF6748FFD6
+S31AFE014085FF6748FFFF6748FFFF6748FFFF6748FFFF6748FFFFC1
+S31AFE01409A6748FFFF6748FFFF6748FFFF6748FFFF6770FFFF671C
+S31AFE0140AF90FFFF67B0FFFF67D0FFFF67F0FFFF6858FFFF68584C
+S31AFE0140C4FFFF6858FFFF6858FFFF6810FFFF6830FFFF6830FFC5
+S31AFE0140D9FF6830FFFF6830FFFF6830FFFF6830FFFF6830FFFFE0
+S31AFE0140EE6830FFFF6830FFFF6830FFFF6830FFFF6830FFFF6862
+S31AFE01410330FFFF6830FFFF6830FFFF6830FFFF6830FFFF683084
+S31AFE014118FFFF6830FFFF6830FFFF6830FFFF6830FFFF6830FFA0
+S31AFE01412DFF6830FFFF6830FFFF6830FFFF6830FFFF6830FFFF8B
+S31AFE0141426830FFFF6830FFFF6830FFFF6830FFFF67B0FFFF678F
+S31AFE014157B0FFFF67B0FFFF67B0FFFF67B0FFFF67B0FFFF67B035
+S31AFE01416CFFFF67B0FFFF67B0FFFF67B0FFFF67B0FFFF67B0FFD1
+S31AFE014181FF67B0FFFF67B0FFFF67B0FFFF67B0FFFF67D8FFFF94
+S31AFE01419667F8FFFF6818FFFF6838FFFF6858FFFF68A0FFFF686A
+S31AFE0141ABA0FFFF68A0FFFF68A0FFFF68A0FFFF6878FFFF68788C
+S31AFE0141C0FFFF6878FFFF6878FFFF6878FFFF6878FFFF6878FF90
+S31AFE0141D5FF6878FFFF6878FFFF6878FFFF6878FFFF6878FFFF7B
+S31AFE0141EA6878FFFF6878FFFF6878FFFF6878FFFF6878FFFF68FD
+S31AFE0141FF78FFFF6878FFFF6878FFFF6878FFFF6878FFFF6878D8
+S31AFE014214FFFF6878FFFF6878FFFF6878FFFF6878FFFF6878FF3B
+S31AFE014229FF6878FFFF6878FFFF6878FFFF6878FFFF67FCFFFFA3
+S31AFE01423E6840FFFF67FCFFFF6840FFFF67FCFFFF6840FFFF674B
+S31AFE014253FCFFFF6840FFFF67FCFFFF6840FFFF67FCFFFF6840A1
+S31AFE014268FFFF67FCFFFF6840FFFF67FCFFFF6840FFFF6840FF89
+S31AFE01427DFF6840FFFF6840FFFF6840FFFF6840FFFF6840FFFFEA
+S31AFE0142926840FFFF6840FFFF6840FFFF6840FFFF6840FFFF686C
+S31AFE0142A740FFFF6840FFFF6840FFFF6840FFFF6840FFFF68407F
+S31AFE0142BCFFFF6840FFFF6840FFFF6840FFFF6840FFFF6840FFAB
+S31AFE0142D1FF6840FFFF6840FFFF6840FFFF6840FFFF6840FFFF96
+S31AFE0142E66840FFFF6840FFFF6840FFFF6840FFFF6840FFFF6818
+S31AFE0142FB40FFFF6840FFFF6840FFFF6840FFFF6840FFFF68402B
+S31AFE014310FFFF6840FFFF6840FFFF6840FFFF6840FFFF6858FF3E
+S31AFE014325FF6858FFFF6858FFFF6858FFFF6858FFFF6858FFFFC9
+S31AFE01433A6858FFFF6858FFFF6858FFFF6858FFFF6858FFFF684B
+S31AFE01434F58FFFF6858FFFF6858FFFF6858FFFF6858FFFF679807
+S31AFE014364FFFF6798FFFF67CCFFFF6800FFFF6800FFFF6858FF88
+S31AFE014379FF6858FFFF6858FFFF6858FFFF6834FFFF6858FFFF99
+S31AFE01438E6858FFFF6858FFFF6858FFFF6858FFFF6858FFFF68F7
+S31AFE0143A358FFFF6858FFFF6858FFFF6858FFFF6858FFFF6858F2
+S31AFE0143B8FFFF6858FFFF6858FFFF6858FFFF6858FFFF6858FF36
+S31AFE0143CDFF6858FFFF6858FFFF6858FFFF6858FFFF6858FFFF21
+S31AFE0143E26858FFFF6858FFFF6858FFFF6858FFFF6858FFFF68A3
+S31AFE0143F758FFFF6858FFFF6858FFFF6858FFFF68583031323396
+S31AFE01440C3435363738390000303132333435363738396162631C
+S31AFE0144216465660000000030313233343536373839414243443B
+S31AFE01443645460000000000000000FFFF7240FFFF73F0FFFF735F
+S31AFE01444BF0FFFF73F0FFFF73F0FFFF73F0FFFF73F0FFFF73F082
+S31AFE014460FFFF73F0FFFF73F0FFFF73F0FFFF7384FFFF7240FF7B
+S31AFE014475FF73F0FFFF73F0FFFF73F0FFFF73F0FFFF73F0FFFF49
+S31AFE01448A73F0FFFF73F0FFFF73F0FFFF73F0FFFF73F0FFFF73C0
+S31AFE01449FF0FFFF7220FFFF73F0FFFF73F0FFFF7318FFFF73F0D7
+S31AFE0144B4FFFF73F0FFFF73F0FFFF73F0FFFF7240000000005EBD
+S31AFE0144C9430A003078253038583A2000000000253032580000C6
+S31AFE0144DE00002020000020000000207C0000256300007C0A00BA
+S31AFE0144F300202D2061726520796F7520737572652028792F6E50
+S31AFE014508293F2000556E62616C616E63656420737472696E676D
+S31AFE01451D210A00416D626967756F757320636F6D6D616E64208E
+S31AFE014532272573272C2063686F69636573206172653A20257315
+S31AFE01454700202573000A00000055736167653A0A002020257387
+S31AFE01455C25732025730A00002A2A204572726F723A202573205B
+S31AFE014571616C7265616479207370656369666965640A002A2A24
+S31AFE014586204572726F723A20696E76616C6964206E756D626579
+S31AFE01459B72202725732720666F722025730A0000002A2A2045AC
+S31AFE0145B072726F723A20696E76616C696420666C6167202725C5
+S31AFE0145C563270A000000002A2A204572726F723A206E6F20640F
+S31AFE0145DA656661756C742F6E6F6E2D666C616720617267756DC9
+S31AFE0145EF656E747320737570706F727465640A00004E455441C0
+S31AFE01460453434949000000004F43544554000000556E6B6E6FEA
+S31AFE014619776E206572726F7200000066696C65206E6F742066C1
+S31AFE01462E6F756E6400006163636573732076696F6C6174696FC3
+S31AFE0146436E000000006469736B2066756C6C206F7220616C6C17
+S31AFE0146586F636174696F6E20657863656564656400000000699B
+S31AFE01466D6C6C6567616C2054465450206F7065726174696F6E73
+S31AFE0146820000756E6B6E6F776E207472616E73666572204944DC
+S31AFE0146970066696C6520616C72656164792065786973747300A7
+S31AFE0146AC6E6F20737563682075736572000000006F706572614E
+S31AFE0146C174696F6E2074696D6564206F757400736F6D65207333
+S31AFE0146D66F7274206F66206E6574776F726B206572726F72000C
+S31AFE0146EB00696E76616C696420706172616D65746572000000ED
+S31AFE01470070726F746F636F6C2076696F6C6174696F6E000066D2
+S31AFE014715696C65206973206C6172676572207468616E206275F5
+S31AFE01472A666665720000FFFF8BD4FFFF8BE0FFFF8BECFFFF8B0E
+S31AFE01473FF8FFFF8C04FFFF8C10FFFF8C1CFFFF8C28FFFF8C342A
+S31AFE014754FFFF8C40FFFF8C4CFFFF8C5847444220636F6E6E65C9
+S31AFE0147696374696F6E20706F7274006764625F706F72740000E3
+S31AFE01477E00004E6574776F726B20646562756720617420626F2A
+S31AFE0147936F742074696D6500006E65745F6465627567000000AD
+S31AFE0147A855736520424F4F545020666F72206E6574776F726B95
+S31AFE0147BD20636F6E66696775726174696F6E00626F6F74700026
+S31AFE0147D200004C6F63616C204950206164647265737300000023
+S31AFE0147E700626F6F74705F6D795F69700044656661756C742032
+S31AFE0147FC736572766572204950206164647265737300000062EB
+S31AFE0148116F6F74705F7365727665725F69700025732E25640A44
+S31AFE01482600006E65745F696F5F7772697465000000006E657429
+S31AFE01483B5F696F5F726561640000000000FFFF9084FFFF90840D
+S31AFE014850FFFF9084FFFF9084FFFF9084FFFF9084FFFF9084FFF5
+S31AFE014865FF9084FFFF9084FFFF9084FFFF9084FFFF9084FFFFE0
+S31AFE01487A9084FFFF9084FFFF9084FFFF9084FFFF90B0FFFF900E
+S31AFE01488FD0FFFF90F0FFFF9110FFFF9130FFFF9354FFFF935499
+S31AFE0148A4FFFF9354FFFF9354FFFF9150FFFF9170FFFF9170FF54
+S31AFE0148B9FF9170FFFF9170FFFF9170FFFF9170FFFF9170FFFFEB
+S31AFE0148CE9170FFFF9170FFFF9170FFFF9170FFFF9170FFFF9144
+S31AFE0148E370FFFF9170FFFF9170FFFF9170FFFF9170FFFF917050
+S31AFE0148F8FFFF9170FFFF9170FFFF9170FFFF9170FFFF9170FFAC
+S31AFE01490DFF9170FFFF9170FFFF9170FFFF9170FFFF9170FFFF96
+S31AFE0149229170FFFF9170FFFF9170FFFF9170FFFF9108FFFF9157
+S31AFE01493708FFFF9108FFFF9108FFFF9108FFFF9108FFFF91086B
+S31AFE01494CFFFF9108FFFF9108FFFF9108FFFF9108FFFF9108FF5F
+S31AFE014961FF9108FFFF9108FFFF9108FFFF9108FFFF9134FFFF1E
+S31AFE0149769158FFFF917CFFFF91A0FFFF91C4FFFF926CFFFF9225
+S31AFE01498B6CFFFF926CFFFF926CFFFF91E8FFFF9208FFFF920807
+S31AFE0149A0FFFF9208FFFF9208FFFF9208FFFF9208FFFF9208FF06
+S31AFE0149B5FF9208FFFF9208FFFF9208FFFF9208FFFF9208FFFFF1
+S31AFE0149CA9208FFFF9208FFFF9208FFFF9208FFFF9208FFFF9249
+S31AFE0149DF08FFFF9208FFFF9208FFFF9208FFFF9208FFFF9208BE
+S31AFE0149F4FFFF9208FFFF9208FFFF9208FFFF9208FFFF9208FFB2
+S31AFE014A09FF9208FFFF9208FFFF9208FFFF92084E6F206E65740E
+S31AFE014A1E776F726B20696E746572666163657320666F756E643B
+S31AFE014A330A0000000043616E27742067657420424F4F5450208E
+S31AFE014A48696E666F202D206E6574776F726B2064697361626CA2
+S31AFE014A5D6564210A00000049503A20257300002C204465666104
+S31AFE014A72756C74207365727665723A2025730A00000000000022
+S31AFE014A870025642E25642E25642E25640045746865726E657428
+S31AFE014A9C2073656E643A0A0045746865726E65742072656376E3
+S31AFE014AB13A0A006574685F6472765F6473722073686F756C6464
+S31AFE014AC6206E6F742062652063616C6C65643A20766563746F7E
+S31AFE014ADB722025642C20646174612025780A00000000000000F9
+S31AFE014AF02E2E2E2045726173652066726F6D2025702D25703A8D
+S31AFE014B052000002E0000000A0000002E2E2E2050726F67726129
+S31AFE014B1A6D2066726F6D2025702D25702061742025703A2000C5
+S31AFE014B2F004E6F206572726F72202D206F7065726174696F6E27
+S31AFE014B4420636F6D706C657465000000496E76616C69642046B1
+S31AFE014B594C41534820616464726573730000004572726F7220EA
+S31AFE014B6E747279696E6720746F20657261736500000045727234
+S31AFE014B836F7220747279696E6720746F206C6F636B2F756E6C30
+S31AFE014B986F636B004572726F7220747279696E6720746F20706C
+S31AFE014BAD726F6772616D0047656E65726963206572726F72005F
+S31AFE014BC200004465766963652F726567696F6E206973207772D1
+S31AFE014BD76974652D70726F74656374656400000000464C415365
+S31AFE014BEC48207375622D73797374656D206E6F7420696E6974E6
+S31AFE014C0169616C697A656400000000556E6B6E6F776E206572D0
+S31AFE014C16726F7200000000000000FFFFA2E4FFFFA2F0FFFFA27D
+S31AFE014C2BFCFFFFA308FFFFA314FFFFA320FFFFA32CFFFFA338AE
+S31AFE014C40457272203D2025780A000000000000004672616D691E
+S31AFE014C556E67206572726F72202D20626C6B3A2025782F2578BD
+S31AFE014C6A2F25780A0000435243206572726F72202D2072656391
+S31AFE014C7F76643A2025303278253032782C20636F6D70757465A0
+S31AFE014C94643A2025780A0000436865636B73756D206572726F96
+S31AFE014CA972202D2072656376643A2025782C20636F6D70757423
+S31AFE014CBE65643A2025780A00000043616E277420616363657346
+S31AFE014CD3732066696C65000000536F7272792C207A4D6F64652A
+S31AFE014CE86D206E6F7420617661696C61626C652079657400544D
+S31AFE014CFD696D6564206F7574000000456E64206F662066696C1F
+S31AFE014D12650043616E63656C6C6564000000496E76616C6964E0
+S31AFE014D27206672616D696E67004352432F636865636B73756D14
+S31AFE014D3C206572726F720000426C6F636B2073657175656E6314
+S31AFE014D5165206572726F7200000000556E6B6E6F776E206572B2
+S31AFE014D66726F7200000000000000FFFFAC7CFFFFAC70FFFFACF6
+S31AFE014D7B64FFFFAC58FFFFAC4CFFFFAC40FFFFAC34FFFFAC2828
+S31AFE014D90FFFFB028FFFFB028FFFFB020FFFFAFB8FFFFB020FF5D
+S31AFE014DA5FFAFC0FFFFAFF8FFFFB000FFFFB010FFFFB010FFFFB9
+S31AFE014DBAB008FFFFB018FFFFAFF8FFFFB030FFFFB010FFFFB072
+S31AFE014DCF18FFFFB018FFFFB020FFFFB028FFFFB030FFFFB0308C
+S31AFE014DE4FFFFB030FFFFB030FFFFB030FFFFB030FFFFB030FF60
+S31AFE014DF9FFB018FFFFB018FFFFB018FFFFB018FFFFB600FFFFD5
+S31AFE014E0EB600FFFFB600FFFFB600FFFFB600FFFFB600FFFFB650
+S31AFE014E2300FFFFB600FFFFB600FFFFB600FFFFB600FFFFB600F1
+S31AFE014E38FFFFB600FFFFB600FFFFB600FFFFB600FFFFB620FFBD
+S31AFE014E4DFFB640FFFFB660FFFFB680FFFFB6A0FFFFB6FCFFFF0C
+S31AFE014E62B6FCFFFFB6FCFFFFB6FCFFFFB6C0FFFFB6E0FFFFB668
+S31AFE014E77E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E05D
+S31AFE014E8CFFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FF29
+S31AFE014EA1FFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFF14
+S31AFE014EB6B6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB648
+S31AFE014ECBE0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E009
+S31AFE014EE0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB6E0FFFFB650FF65
+S31AFE014EF5FFB650FFFFB650FFFFB650FFFFB650FFFFB650FFFF90
+S31AFE014F0AB650FFFFB650FFFFB650FFFFB650FFFFB650FFFFB6C3
+S31AFE014F1F50FFFFB650FFFFB650FFFFB650FFFFB650FFFFB670F4
+S31AFE014F34FFFFB694FFFFB6B8FFFFB6DCFFFFB700FFFFB798FF1E
+S31AFE014F49FFB798FFFFB798FFFFB798FFFFB724FFFFB744FFFF96
+S31AFE014F5EB744FFFFB744FFFFB744FFFFB744FFFFB744FFFFB7A5
+S31AFE014F7344FFFFB744FFFFB744FFFFB744FFFFB744FFFFB74403
+S31AFE014F88FFFFB744FFFFB744FFFFB744FFFFB744FFFFB744FF33
+S31AFE014F9DFFB744FFFFB744FFFFB744FFFFB744FFFFB744FFFF1E
+S31AFE014FB2B744FFFFB744FFFFB744FFFFB744FFFFB744FFFFB751
+S31AFE014FC744FFFFB744FFFFB744FFFFB744FFFFB74425733A20B6
+S31AFE014FDC43616E27742066696E642061646472657373206F6652
+S31AFE014FF1207365727665720A0000005F5F7564705F73656E64D5
+S31AFE015006746F000000007564705F7265637666726F6D202D2034
+S31AFE01501B64726F70706564207061636B6574206F662025642037
+S31AFE01503062797465730A00004275665B25645D2F25703A206257
+S31AFE01504575663A2025702C206C656E3A2025642F25642C206EA7
+S31AFE01505A6578743A2025700A000046726565206C697374203D37
+S31AFE01506F2025700A005F5F656E65745F706F6C6C3A206E6F2091
+S31AFE0150846D6F726520627566666572730A00000000000000FF49
+S31AFE015099FFCC34FFFFCC8CFFFFCF08FFFFCCE0FFFFCCE0FFFF81
+S317FE0150AECD88FFFFCDC8FFFFCE64FFFFCEA8FFFFCEE8AB
+S31AFE0150C0000000007C2F2D5C7C2D00005B2D725D205B2D765D27
+S31AFE0150D5205B2D68203C686F73743E5D205B2D6D207B5446545E
+S31AFE0150EA50207C2078797A4D4F44454D7D5D205B2D62203C6221
+S31AFE0150FF6173655F616464726573733E5D203C66696C655F6EB5
+S31AFE015114616D653E000000000000337400007C20FE012B98000B
+S31AFE0151290000000000000000000000FE005B8CFE005BA4FE008C
+S31AFE01513E5B7CFE005B64FE0059F4FE0058A8FE005FA0FE005728
+S31AFE01515368FE005760000037340000000008003E2879B800001B
+S31AFE015168FE0060B4FE00B218FE00B218FE00B218FE00B218FEFD
+S31AFE01517D00B218FE00B218FE00B218FE00B218FE00B218FE0030
+S31AFE015192B218FE00B218FE00B218FE00B218FE00B218FE00B269
+S31AFE0151A718FE00B218FE00B218FE00B218FE00B218FE00B218EE
+S31AFE0151BCFE00B218FE00B218FE00B218FE00B218FE00B218FEF3
+S31AFE0151D100B218FE00B218FE00B218FE00B218FE00B218FE00DC
+S31AFE0151E6B218FE00B218FE00B218FE00B218FE00B218FE00B215
+S31AFE0151FB18FE00B218FE00B218FE00B218FE00B218FE00B2189A
+S31AFE015210FE00B218FE00B218FE00B218FE00B218FE00B218FE9E
+S31AFE01522500B218FE00B218FE00B218FE00B218FE00B218FE0087
+S31AFE01523AB218FE00B218FE00B218FE00B218FE00B218FE00B2C0
+S31AFE01524F18FE00B2180000000000000000000000000000000065
+S31AFE01526400000000000000000000000000000000000000000030
+S31AFE0152790000000000000000000000000000000000000000001B
+S31AFE01528E00000000000000000000000000000000000000000006
+S31AFE0152A3000000000000000000000000000000000000000000F1
+S31AFE0152B8000000000000000000000000000000000000000000DC
+S31AFE0152CD000000000000000000000000000000000000000000C7
+S31AFE0152E2000000000000000000000000000000000000000000B2
+S31AFE0152F70000000000000000000000000000000000000000009D
+S31AFE01530C00000000000000000000000000000000000000000087
+S31AFE01532100000000000000000000000000000000000000000072
+S31AFE0153360000000000000000000000000000000000000000005D
+S31AFE01534B00000000000000000000000000000000000000000048
+S31AFE01536000000000000000000000000000000000000000000033
+S31AFE0153750000000000000000000000000000000000000000001E
+S31AFE01538A00000000000000000000000000000000000000000009
+S31AFE01539F000000000000000000000000000000000000000000F4
+S31AFE0153B4000000000000000000000000000000000000000000DF
+S31AFE0153C9000000000000000000000000000000000000000000CA
+S31AFE0153DE000000000000000000000000000000000000000000B5
+S31AFE0153F3000000000000000000000000000000000000000000A0
+S31AFE0154080000000000000000000000000000000000000000008A
+S31AFE01541D000000000000000000000000000000FE000000FE0079
+S31AFE01543200000040000000000000FF000000FF00000000100012
+S31AFE0154470001000000FA100000FA100000000000040100000031
+S31AFE01545C000000000000000000800000000000000000000000B6
+S31AFE01547100000000000000000000000000000000000000FE0023
+S31AFE01548685D8FE008634000000000000000000000000FFFFFFFA
+S31AFE01549BFF0000000000000000FE0096800000000000000000E4
+S31AFE0154B00001235000000000000000000000000000000000006E
+S31AFE0154C5000000FFFFFFFEFFFFFFFE0000000000001E140000A5
+S31AFE0154DA1E14000001F400000000000000000000000000000091
+S31AFE0154EF0000000000FE00E440FE00E8E8FE00E6D400001021CA
+S31AFE01550420423063408450A560C670E781089129A14AB16BC157
+S31AFE0155198CD1ADE1CEF1EF123102103273225252B5429472F72B
+S31AFE01552E62D693398318B37BA35AD3BDC39CF3FFE3DE2462343D
+S31AFE015543430420140164E674C744A45485A56AB54B8528950932
+S31AFE015558E5EEF5CFC5ACD58D365326721611063076D766F65652
+S31AFE01556D9546B4B75BA77A97198738F7DFE7FED79DC7BC48C435
+S31AFE01558258E5688678A70840186128023823C9CCD9EDE98EF9B4
+S31AFE015597AF89489969A90AB92B5AF54AD47AB76A961A710A505E
+S31AFE0155AC3A332A12DBFDCBDCFBBFEB9E9B798B58BB3BAB1A6C5C
+S31AFE0155C1A67C874CE45CC52C223C030C601C41EDAEFD8FCDECA0
+S31AFE0155D6DDCDAD2ABD0B8D689D497E976EB65ED54EF43E132E6A
+S31AFE0155EB321E510E70FF9FEFBEDFDDCFFCBF1BAF3A9F598F78F3
+S31AFE015600918881A9B1CAA1EBD10CC12DF14EE16F108000A1308B
+S31AFE015615C220E3500440257046606783B99398A3FBB3DAC33DEE
+S31AFE01562AD31CE37FF35E02B1129022F332D2423552146277722E
+S31AFE01563F56B5EAA5CB95A88589F56EE54FD52CC50D34E224C33A
+S31AFE01565414A004817466644754244405A7DBB7FA879997B8E734
+S31AFE0156695FF77EC71DD73C26D336F2069116B0665776764615DA
+S31AFE01567E5634D94CC96DF90EE92F99C889E9B98AA9AB584448C0
+S31AFE015693657806682718C008E1388228A3CB7DDB5CEB3FFB1E83
+S31AFE0156A88BF99BD8ABBBBB9A4A755A546A377A160AF11AD02A89
+S31AFE0156BDB33A92FD2EED0FDD6CCD4DBDAAAD8B9DE88DC97C26AE
+S31AFE0156D26C075C644C453CA22C831CE00CC1EF1FFF3ECF5DDF4E
+S31AFE0156E77CAF9BBFBA8FD99FF86E177E364E555E742E933EB20C
+S31AFE0156FC0ED11EF0000000000000000000000000000003E800BC
+S31AFE0157110000000000000000000000000000000000000000007E
+S31AFE01572600000000000000000000000000000000000000000069
+S31AFE01573B00000000000000000000000000FE013160FE01315044
+S31AFE015750FE0130E0FE003E38FE013074FE013044FE01303CFE3D
+S31AFE015765003A5CFE013034FE01301CFE013000FE003C60FE011E
+S31AFE01577A2FF8FE012FB4FE012FB0FE004534FE012F68FE012FF3
+S31AFE01578F44FE012F3CFE004794FE012FA8FE012F78FE012F705F
+S31AFE0157A4FE004644FE0130D8FE0130A4FE01307CFE0038A8FE02
+S31AFE0157B901299CFE012984FE012978FE002864FE012970FE01A3
+S31AFE0157CE2948FE01292CFE002A54FE012EFCFE012EE8FE012E15
+S31AFE0157E3E0FE003714FE012F34FE012F08FE012F00FE002F7020
+S31AFE0157F8FE012928FE01290CFE0128F4FE002B4CFE0128ECFE72
+S31AFE01580D0128D8FE0128D0FE0029E0FE012BE4FE012BD8000072
+S31AFE015822330CFE004C4CFE013810FE0137FC000000000000001E
+S31AFE015837010000000100000000FE013828FE01381CFE0138105C
+S31AFE01584C000000010000000400000000FE013864FE01383CFE31
+S31AFE015861013810000000010000000200000000FE0147CCFE01D0
+S31AFE01587647A800000000000000010000000100000000FE0147E1
+S31AFE01588BE8FE0147D4FE0147CC000000000000000500000000EA
+S31AFE0158A0FE014810FE0147F4FE0147CC00000000000000050046
+S31AFE0158B5000000FE014774FE0147600000000000000001000078
+S31AFE0158CA000200000000FE01479CFE014780000000000000001A
+S31AFE0158DF010000000100000000FE002CE800000000FE00DFA816
+S31AFE0158F400000000FE012BA0FE005BBC0000335C000000004EDE
+S314FE015909800021000000000000000000000000E9
 S705FE000100FB
--- a/packages/hal/powerpc/mbx/current/misc/redboot_ROM.cfg
+++ b/packages/hal/powerpc/mbx/current/misc/redboot_ROM.cfg
@@ -49,12 +49,6 @@ cdl_option CYGDBG_HAL_DEBUG_GDB_CTRLC_SU
     inferred_value 0
 };
 
-cdl_component CYGBLD_BUILD_REDBOOT {
-    user_value 1
-};
-
-
-
 cdl_option CYGSEM_HAL_ROM_MONITOR {
     user_value 1
 };
@@ -62,3 +56,9 @@ cdl_option CYGSEM_HAL_ROM_MONITOR {
 cdl_component CYG_HAL_STARTUP {
     user_value ROM
 };
+
+cdl_component CYGBLD_BUILD_REDBOOT {
+    user_value 1
+};
+
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/ChangeLog
@@ -0,0 +1,25 @@
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/cdl/hal_powerpc_ppc40x.cdl
@@ -0,0 +1,82 @@
+# ====================================================================
+#
+#      hal_powerpc_ppc40x.cdl
+#
+#      PowerPC/PPC40x variant architectural HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Contributors:   gthomas
+# Date:           2000-08-27
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_POWERPC_PPC40x {
+    display       "PowerPC 40x variant HAL"
+    parent        CYGPKG_HAL_POWERPC
+    hardware
+    include_dir   cyg/hal
+    define_header hal_powerpc_ppc40x.h
+    description   "
+           The PowerPC 40x variant HAL package provides generic support
+           for this processor variant. It is also necessary to
+           select a specific target platform HAL package."
+
+    # Note: This should be sub-variant specific to reduce memory use.
+    define_proc {
+        puts $cdl_header "#define CYGHWR_HAL_VSR_TABLE (CYGHWR_HAL_POWERPC_VECTOR_BASE + 0x3000)"
+        puts $cdl_header "#define CYGHWR_HAL_VIRTUAL_VECTOR_TABLE (CYGHWR_HAL_VSR_TABLE + 0x200)"
+    }
+
+    cdl_component CYGPKG_HAL_POWERPC_PPC403 {
+        display       "PowerPC 403 microprocessor"
+        default_value 1
+        implements    CYGINT_HAL_POWERPC_VARIANT
+        description "
+            The PowerPC 403 microprocessor."
+
+        cdl_option CYGHWR_HAL_POWERPC_FPU {
+            display    "Variant FPU support"
+            calculated 1
+        }
+
+        cdl_option CYGPKG_HAL_POWERPC_MSBFIRST {
+            display    "CPU Variant big-endian"
+            calculated 1
+        }
+    }
+
+    define_proc {
+        puts $::cdl_header "#include <pkgconf/hal_powerpc.h>"
+    }
+
+    compile       var_intr.c var_misc.c variant.S
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/include/var_cache.h
@@ -0,0 +1,192 @@
+#ifndef CYGONCE_VAR_CACHE_H
+#define CYGONCE_VAR_CACHE_H
+//=============================================================================
+//
+//      var_cache.h
+//
+//      Variant HAL cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   nickg
+// Contributors:nickg, jskov
+// Date:        2000-04-02
+// Purpose:     Variant cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations on the PPC60x variant CPUs.
+// Usage:       Is included via the architecture cache header:
+//              #include <cyg/hal/hal_cache.h>
+//              ...
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+
+#include <cyg/hal/ppc_regs.h>
+
+#include <cyg/hal/plf_cache.h>
+
+
+//-----------------------------------------------------------------------------
+// Cache dimensions
+
+// Data cache
+#define HAL_DCACHE_SIZE                 8192    // Size of data cache in bytes
+#define HAL_DCACHE_LINE_SIZE            16      // Size of a data cache line
+#define HAL_DCACHE_WAYS                 2       // Associativity of the cache
+
+// Instruction cache
+#define HAL_ICACHE_SIZE                 16384   // Size of cache in bytes
+#define HAL_ICACHE_LINE_SIZE            16      // Size of a cache line
+#define HAL_ICACHE_WAYS                 2       // Associativity of the cache
+
+#define HAL_DCACHE_SETS (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+#define HAL_ICACHE_SETS (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+// Enable the data cache - this is implicit whenever the MMU is turned on
+#define HAL_DCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()                             \
+    CYG_MACRO_START                                             \
+    int _i_, _indx_;                                            \
+    _indx_ = 0;                                                 \
+    for (_i_ = 0;  _i_ < HAL_DCACHE_SETS;  _i_++) {             \
+        asm volatile ("dccci 0,%0;" :: "r"(_indx_));            \
+        _indx_ += HAL_DCACHE_LINE_SIZE;                         \
+    }                                                           \
+    CYG_MACRO_END
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    (_state_) = 0;                              \
+    CYG_MACRO_END
+
+// Set the data cache refill burst size
+//#define HAL_DCACHE_BURST_SIZE(_size_)
+
+// Set the data cache write mode
+//#define HAL_DCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_DCACHE_WRITETHRU_MODE       0
+//#define HAL_DCACHE_WRITEBACK_MODE       1
+
+// Load the contents of the given address range into the data cache
+// and then lock the cache so that it stays there.
+//#define HAL_DCACHE_LOCK(_base_, _size_)
+
+// Undo a previous lock operation
+//#define HAL_DCACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+#define HAL_DCACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Data cache line control
+
+// Allocate cache lines for the given address range without reading its
+// contents from memory.
+//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+//#define HAL_DCACHE_FLUSH( _base_ , _size_ )
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_DCACHE_INVALIDATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory for the given address range.
+//#define HAL_DCACHE_STORE( _base_ , _size_ )
+
+// Preread the given range into the cache with the intention of reading
+// from it later.
+//#define HAL_DCACHE_READ_HINT( _base_ , _size_ )
+
+// Preread the given range into the cache with the intention of writing
+// to it later.
+//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ )
+
+// Allocate and zero the cache lines associated with the given range.
+//#define HAL_DCACHE_ZERO( _base_ , _size_ )
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE()
+
+// Disable the instruction cache
+#define HAL_ICACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_ICACHE_SYNC()
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    (_state_) = 0;                              \
+    CYG_MACRO_END
+
+// Set the instruction cache refill burst size
+//#define HAL_ICACHE_BURST_SIZE(_size_)
+
+// Load the contents of the given address range into the instruction cache
+// and then lock the cache so that it stays there.
+//#define HAL_ICACHE_LOCK(_base_, _size_)
+
+// Undo a previous lock operation
+//#define HAL_ICACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+#define HAL_ICACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Instruction cache line control
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ )
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_CACHE_H
+// End of var_cache.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/include/var_intr.h
@@ -0,0 +1,54 @@
+#ifndef CYGONCE_VAR_INTR_H
+#define CYGONCE_VAR_INTR_H
+//=============================================================================
+//
+//      var_intr.h
+//
+//      Variant HAL interrupt and clock support
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   nickg
+// Contributors:nickg, jskov, jlarmour, hmt
+// Date:        2000-04-02
+// Purpose:     Variant interrupt support
+// Description: The macros defined here provide the HAL APIs for handling
+//              interrupts and the clock on the PPC60x variant CPUs.
+// Usage:       Is included via the architecture interrupt header:
+//              #include <cyg/hal/hal_intr.h>
+//              ...
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// No builtin interrupt controller in the PPC40x CPUs.
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_INTR_H
+// End of var_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/include/var_regs.h
@@ -0,0 +1,90 @@
+#ifndef CYGONCE_HAL_VAR_REGS_H
+#define CYGONCE_HAL_VAR_REGS_H
+
+//==========================================================================
+//
+//      var_regs.h
+//
+//      PowerPC 40x variant CPU definitions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,gthomas
+// Date:         2000-08-27
+// Purpose:      Provide PPC40x register definitions
+// Description:  Provide PPC40x register definitions
+//               The short difinitions (sans CYGARC_REG_) are exported only
+//               if CYGARC_HAL_COMMON_EXPORT_CPU_MACROS is defined.
+// Usage:        Included via the acrhitecture register header:
+//               #include <cyg/hal/ppc_regs.h>
+//               ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+//--------------------------------------------------------------------------
+// Cache
+#define CYGARC_REG_HID0   1008
+
+#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
+#define HID0       CYGARC_REG_HID0
+#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
+
+//--------------------------------------------------------------------------
+// MMU control.
+#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
+
+#define EVPR            982            // Exception vector prefix
+#define M_PID           945            // Process ID
+
+#define M_EPN_EPNMASK  0xfffff000      // effective page no mask
+#define M_EPN_EV       0x00000040      // entry valid
+#define M_EPN_SIZE(n)  (n<<7)          // entry size (0=1K, 1=4K, ... 7=16M)
+
+#define M_RPN_RPNMASK  0xfffff000      // real page no mask
+#define M_RPN_EX       0x00000200      // execute enable
+#define M_RPN_WR       0x00000100      // write enable
+#define M_RPN_W        0x00000008      // write-through (when cache enabled)
+#define M_RPN_I        0x00000004      // cache inhibited
+#define M_RPN_M        0x00000002      // memory coherent (not implemented)
+#define M_RPN_G        0x00000001      // guarded
+
+#define CYGARC_TLBWE(_id_, _hi_, _lo_) \
+        asm volatile ("tlbwe %1,%0,0; tlbwe %2,%0,1" :: "r"(_id_), "r"(_hi_), "r"(_lo_));
+
+#define CYGARC_TLBRE(_id_, _hi_, _lo_) \
+        asm volatile ("tlbre %0,%2,0; tlbre %1,%2,1" : "=r"(_hi_), "=r"(_lo_) : "r"(_id_));
+
+#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
+
+//-----------------------------------------------------------------------------
+#endif // ifdef CYGONCE_HAL_VAR_REGS_H
+// End of var_regs.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/include/variant.inc
@@ -0,0 +1,176 @@
+#ifndef CYGONCE_HAL_VARIANT_INC
+#define CYGONCE_HAL_VARIANT_INC
+##=============================================================================
+##
+##	variant.inc
+##
+##	PPC40x family assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	jskov
+## Contributors:jskov, gthomas
+## Date:	2000-08-27
+## Purpose:	MPCxxx family definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the PPC40x CPU family.
+## Usage:
+##		#include <cyg/hal/variant.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+	
+#undef CYG_MSR_COMMON
+#define CYG_MSR_COMMON (MSR_ME | MSR_RI)
+
+#include <cyg/hal/arch.inc>
+
+##-----------------------------------------------------------------------------
+## PPC40x defined vectors
+
+        .macro hal_extra_vectors
+        .endm
+
+##-----------------------------------------------------------------------------
+## PPC40x CPU initialization
+##
+## Initialize CPU to a post-reset state, ensuring the ground doesn''t
+## shift under us while we try to set things up.
+        
+        .macro hal_cpu_init
+        # Set up MSR (disable MMU for now)
+        lwi     r3,(CYG_MSR & ~(MSR_IR | MSR_DR))
+        sync
+	mfmsr	r4
+        mtmsr   r3
+        sync
+        .endm
+
+##-----------------------------------------------------------------------------
+## PPC40x monitor initialization
+
+#ifndef CYGPKG_HAL_PPC_MON_DEFINED
+
+#if     defined(CYG_HAL_STARTUP_ROM) ||                 \
+        (       defined(CYG_HAL_STARTUP_RAM) &&         \
+                !defined(CYGSEM_HAL_USE_ROM_MONITOR))
+
+        .macro  hal_mon_init
+#ifdef CYGSEM_HAL_POWERPC_COPY_VECTORS
+        # If we are starting up from ROM and want vectors in RAM
+        # or we are starting in RAM and NOT using a ROM monitor,
+        # copy exception handler code to 0.
+        lwi     r3,rom_vectors          # r3 = rom start
+        lwi     r4,0                    # r4 = ram start
+        lwi     r5,rom_vectors_end      # r5 = rom end
+        cmplw   r3,r5                   # skip if no vectors
+        beq     2f
+
+        subi    r3,r3,4
+        subi    r4,r4,4
+        subi    r5,r5,4
+1:
+        lwzu    r0,4(r3)                # get word from ROM
+        stwu    r0,4(r4)                # store in RAM
+        cmplw   r3,r5                   # compare
+        blt     1b                      # loop if not yet done
+2:
+
+	# Ensure that the vectors will come from 0x0000
+	lwi	r4,0
+	mtspr	EVPR,r4
+#endif
+
+        # Next initialize the VSR table. This happens whether the
+        # vectors were copied to RAM or not.
+
+        # First fill with exception handlers
+        lwi     r3,cyg_hal_default_exception_vsr
+        lwi     r4,hal_vsr_table
+        subi    r4,r4,4
+        li      r5,CYGNUM_HAL_VSR_COUNT
+1:      stwu    r3,4(r4)
+        subi    r5,r5,1
+        cmpwi   r5,0
+        bne     1b
+
+        # Then fill in the special vectors
+        lwi     r3,cyg_hal_default_interrupt_vsr
+        lwi     r4,hal_vsr_table
+        stw     r3,CYGNUM_HAL_VECTOR_INTERRUPT*4(r4)
+        stw     r3,CYGNUM_HAL_VECTOR_DECREMENTER*4(r4)
+        .endm
+
+#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+        # Initialize the VSR table entries
+        # We only take control of the interrupt vectors,
+        # the rest are left to the ROM for now...
+
+        .macro  hal_mon_init
+        lwi     r3,cyg_hal_default_interrupt_vsr
+        lwi     r4,hal_vsr_table
+        stw     r3,CYGNUM_HAL_VECTOR_INTERRUPT*4(r4)
+        stw     r3,CYGNUM_HAL_VECTOR_DECREMENTER*4(r4)
+        .endm
+
+
+#else
+
+        .macro  hal_mon_init
+
+        .endm
+
+#endif
+
+
+#define CYGPKG_HAL_PPC_MON_DEFINED
+
+#endif // CYGPKG_HAL_PPC_MON_DEFINED
+
+##-----------------------------------------------------------------------------
+## PPC40x exception state handling
+        .macro	hal_variant_save regs
+        .endm
+
+        .macro	hal_variant_load regs
+        .endm
+
+##-----------------------------------------------------------------------------
+## Indicate that the ISR tables are defined in variant.S
+
+#define CYG_HAL_PPC_ISR_TABLES_DEFINED
+
+#------------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_VARIANT_INC
+# end of variant.inc
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/src/var_intr.c
@@ -0,0 +1,55 @@
+//==========================================================================
+//
+//      var_intr.c
+//
+//      PowerPC variant interrupt handlers
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov
+// Date:         2000-02-11
+// Purpose:      PowerPC variant interrupt handlers
+// Description:  This file contains code to handle interrupt related issues
+//               on the PowerPC variant.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+
+externC void
+hal_variant_IRQ_init(void)
+{
+    // No special init required for 40x series.
+}
+
+// -------------------------------------------------------------------------
+// EOF var_intr.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/src/var_misc.c
@@ -0,0 +1,136 @@
+//==========================================================================
+//
+//      var_misc.c
+//
+//      HAL implementation miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov
+// Date:         2000-02-04
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#define CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
+#include <cyg/hal/ppc_regs.h>
+#include <cyg/infra/cyg_type.h>
+
+#include <cyg/hal/hal_mem.h>
+
+//--------------------------------------------------------------------------
+void hal_variant_init(void)
+{
+}
+
+
+//--------------------------------------------------------------------------
+// Variant specific idle thread action.
+bool
+hal_variant_idle_thread_action( cyg_uint32 count )
+{
+    // Let architecture idle thread action run
+    return true;
+}
+
+//---------------------------------------------------------------------------
+// Use MMU resources to map memory regions.  
+// Takes and returns an int used to ID the MMU resource to use. This ID
+// is increased as resources are used and should be used for subsequent
+// invocations.
+//
+// The PPC4xx CPUs do not have BATs. Fortunately we don't currently
+// use the MMU, so we can simulate BATs by using the TLBs.
+int
+cyg_hal_map_memory (int id, CYG_ADDRESS virt, CYG_ADDRESS phys, 
+                    cyg_int32 size, cyg_uint8 flags)
+{
+    cyg_uint32 epn, rpn;
+    int sv, lv, max_tlbs;
+
+    // There are 64 TLBs.
+    max_tlbs = 64;
+
+    // Use the smallest "size" value which is big enough (round up)
+    for (sv = 0, lv = 0x400;  sv < 8;  sv++, lv <<= 2) {
+        if (lv >= size) break;        
+    }
+
+    // Note: the process ID comes from the PID register (always 0)
+    epn = (virt & M_EPN_EPNMASK) | M_EPN_EV | M_EPN_SIZE(sv);
+    rpn = (phys & M_RPN_RPNMASK) | M_RPN_EX | M_RPN_WR;
+
+    if (flags & CYGARC_MEMDESC_CI) {
+        rpn |= M_RPN_I;
+    }
+
+    if (flags & CYGARC_MEMDESC_GUARDED) 
+        rpn |= M_RPN_G;
+
+    CYGARC_TLBWE(id, epn, rpn);
+    id++;
+
+    // Make caches default disabled when MMU is disabled.
+
+    return id;
+}
+
+
+// Initialize MMU to a sane (NOP) state.
+//
+// Initialize TLBs with 0, Valid bits unset.
+void
+cyg_hal_clear_MMU (void)
+{
+    cyg_uint32 tlbhi = 0;
+    cyg_uint32 tlblo = 0;
+    int id, max_tlbs;
+    cyg_uint32 tlb[64][2];
+
+    // There are 64 TLBs.
+    max_tlbs = 64;
+
+    CYGARC_MTSPR (M_PID, 0);
+
+    for (id = 0; id < max_tlbs; id++) {
+        CYGARC_TLBRE(id, tlb[id][0], tlb[id][1]);
+        CYGARC_TLBWE(id, tlbhi, tlblo);
+    }
+
+    // Make caches default disabled when MMU is disabled.
+}
+
+//--------------------------------------------------------------------------
+// End of var_misc.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/powerpc/ppc40x/current/src/variant.S
@@ -0,0 +1,77 @@
+##=============================================================================
+##
+##	variant.S
+##
+##	PowerPC PPC40x variant code
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	jskov
+## Contributors:jskov,gthomas        
+## Date:	2000-08-27
+## Purpose:	PowerPC PPC40x variant code
+## Description:	Variant specific code for PowerPC 40x CPUs.
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <cyg/hal/variant.inc>
+
+#---------------------------------------------------------------------------
+# Interrupt vector tables.
+# These tables contain the isr, data and object pointers used to deliver
+# interrupts to user code.
+
+        .data
+
+        .extern hal_default_decrementer_isr
+        .extern hal_default_isr
+
+        .globl  hal_interrupt_handlers
+hal_interrupt_handlers:
+        .long   hal_default_decrementer_isr
+        .rept   CYGNUM_HAL_ISR_COUNT-1
+        .long   hal_default_isr
+        .endr
+
+        .globl  hal_interrupt_data
+hal_interrupt_data:
+        .rept   CYGNUM_HAL_ISR_COUNT
+        .long   0
+        .endr
+
+        .globl  hal_interrupt_objects
+hal_interrupt_objects:
+        .rept   CYGNUM_HAL_ISR_COUNT
+        .long   0
+        .endr
+
+##-----------------------------------------------------------------------------
+## end of variant.S
+	
--- a/packages/hal/sh/arch/current/ChangeLog
+++ b/packages/hal/sh/arch/current/ChangeLog
@@ -1,3 +1,26 @@
+2000-10-31  Jesper Skov  <jskov@redhat.com>
+
+
+	* include/mod_7707a.h: Moved to SH3 HAL.
+	* include/mod_7708.h: Same.
+	* include/mod_7709a.h: Same.
+	* include/mod_7729.h: Same.
+	* include/sh3_sci.h: Same.
+	* include/sh3_scif.h: Same.
+	* src/sh3_sci.c: Same.
+	* src/sh3_scif.c: Same.
+
+	* include/hal_cache.h: Moved SH3 code out to new SH3 HAL.
+	* cdl/hal_sh.cdl: Same.
+	* include/hal_intr.h: Same.
+	* include/sh_regs.h: Same.
+	* src/hal_misc.c: Same.
+	* src/hal_mk_defs.c: Same.
+
+	* src/vectors.S: Changed to support SH4. Moved CPU post-reset init
+	code to variant HALs. Moved interrupt decoding to variant HAL
+	macros. Moved cache code to variant HALs.
+
 2000-10-24  Jesper Skov  <jskov@redhat.com>
 
 	* src/vectors.S (hal_hw_init): Added errata comment.
--- a/packages/hal/sh/arch/current/cdl/hal_sh.cdl
+++ b/packages/hal/sh/arch/current/cdl/hal_sh.cdl
@@ -52,13 +52,7 @@ cdl_package CYGPKG_HAL_SH {
         necessary to select a specific target platform HAL
         package."
 
-    cdl_interface CYGINT_HAL_SH_VARIANT {
-        display  "Number of variant implementations in this configuration"
-        no_define
-        requires 1 == CYGINT_HAL_SH_VARIANT
-    }
-
-    compile       hal_misc.c context.S sh_stub.c sh3_sci.c sh3_scif.c
+    compile       hal_misc.c context.S sh_stub.c
 
     # The "-o file" is a workaround for CR100958 - without it the
     # output file would end up in the source directory under CygWin.
@@ -111,74 +105,12 @@ cdl_package CYGPKG_HAL_SH {
         description      "
             CPU type and endian mode can be selected using these option."
 
-        cdl_option CYGPKG_HAL_SH_7707A {
-            display       "SH 7707A microprocessor"
-            implements    CYGINT_HAL_SH_VARIANT
-            implements    CYGINT_HAL_SH_CPG_V2
-            default_value 0
+        cdl_interface CYGINT_HAL_SH_VARIANT {
+            display  "Number of variant implementations in this configuration"
             no_define
-            define        -file=system.h CYGPKG_HAL_SH_7707A
-            description "
-                The SH3 7707A microprocessor. This is an embedded part that in
-                addition to the SH3 processor core has built in peripherals
-                such as memory controllers, serial ports, LCD controller and
-                timers/counters."               
-            define_proc {
-                puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7707a.h>"
-            }
-        }
-    
-        cdl_option CYGPKG_HAL_SH_7708 {
-            display       "SH 7708 microprocessor"
-            implements    CYGINT_HAL_SH_VARIANT
-            implements    CYGINT_HAL_SH_CPG_V1
-            default_value 0
-            no_define
-            define        -file=system.h CYGPKG_HAL_SH_7708
-            description "
-                The SH3 7708 microprocessor. This is an embedded part that in
-                addition to the SH3 processor core has built in peripherals
-                such as memory controllers, serial ports and
-                timers/counters."               
-            define_proc {
-                puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7708.h>"
-            }
+            requires 1 == CYGINT_HAL_SH_VARIANT
         }
-    
-        cdl_option CYGPKG_HAL_SH_7709A {
-            display       "SH 7709A microprocessor"
-            implements    CYGINT_HAL_SH_VARIANT
-            implements    CYGINT_HAL_SH_CPG_V3
-            default_value 0
-            no_define
-            define        -file=system.h CYGPKG_HAL_SH_7709A
-            description "
-                The SH3 7709A microprocessor. This is an embedded part that in
-                addition to the SH3 processor core has built in peripherals
-                such as memory controllers, DMA controllers, A/D and D/A
-                converters, serial ports and timers/counters."               
-            define_proc {
-                puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7709a.h>"
-            }
-        }
-    
-        cdl_option CYGPKG_HAL_SH_7729 {
-            display       "SH 7729 microprocessor"
-            implements    CYGINT_HAL_SH_VARIANT
-            implements    CYGINT_HAL_SH_CPG_V3
-            default_value 0
-            no_define
-            define        -file=system.h CYGPKG_HAL_SH_7729
-            description "
-                The SH3 7729 microprocessor. This is an embedded part that in
-                addition to the SH3 processor core has built in peripherals
-                such as memory controllers, serial ports, and timers/counters,
-                and a DSP engine."
-            define_proc {
-                puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7729.h>"
-            }
-        }
-    
+
         cdl_option CYGHWR_HAL_SH_BIGENDIAN {
             display          "Use big-endian mode"
             default_value    1
@@ -187,50 +119,6 @@ cdl_package CYGPKG_HAL_SH {
         }
     }
     
-    cdl_component CYGPKG_HAL_SH_INTERRUPT {
-        display          "Interrupt controls"
-        flavor     none
-        no_define
-        description      "
-            Initial interrupt settings can be specified using these option."
-
-        cdl_option CYGHWR_HAL_SH_IRQ_HANDLE_SPURIOUS_INTERRUPTS {
-            display          "Handle spurious interrupts"
-            default_value    0
-            description      "
-               The SH3 may generate spurious interrupts with INTEVT = 0
-               when changing the BL bit of the status register. Enabling
-               this option will cause such interrupts to be identified
-               very early in the interrupt handler and be ignored.  Given
-               that the SH HAL uses the I-mask to control interrupts,
-               these spurious interrupts should not occur, and so there
-               should be no reason to include the special handling code."
-        }
-
-        cdl_option CYGHWR_HAL_SH_IRQ_USE_IRQLVL {
-            display          "Use IRQ0-3 pins as IRL input"
-            default_value    0
-            description      "
-                It is possible for the IRQ0-3 pins to be used as IRL
-                inputs by enabling this option."
-        }
-
-        cdl_option CYGHWR_HAL_SH_IRQ_ENABLE_IRLS_INTERRUPTS {
-            display          "Enable IRLS interrupt pins"
-            default_value    0
-            active_if        CYGHWR_HAL_SH_IRQ_USE_IRQLVL
-            description      "
-                IRLS interrupt pins must be specifically
-                activated. When they are, they will cause the same
-                type of interrupt as those caused by the IRL pins. If
-                IRL and IRLS pins signal an interrupt at the same
-                time, the highest level interrupt will be generated.
-                Only available on some cores, and probably share pins
-                with other interrupt sources (PINT) which cannot be
-                used in this configuration."
-        }
-    }
-
     cdl_component CYGPKG_HAL_SH_CACHE {
         display          "Cache controls"
         flavor     none
@@ -244,183 +132,6 @@ cdl_package CYGPKG_HAL_SH {
             description "
                 Controls whether caches should be enabled on startup."
         }
-
-        cdl_option CYGHWR_HAL_SH_CACHE_MODE_P0 {
-            display       "Select cache mode set for P0/U0/P3 at startup"
-            default_value { "WRITE_BACK" }
-            legal_values  { "WRITE_BACK" "WRITE_THROUGH" }
-            flavor        data
-            description "
-                Controls what cache mode the cache should be put in at
-                startup for areas P0, U0 and P3. Write-back mode improves
-                performance by letting dirty data to be kept in the
-                cache for a period of time, allowing mutiple writes to
-                the same cache line to be written back to memory in
-                one memory transaction. In Write-through mode, each
-                individual write will cause a memory transaction."
-        }
-
-        cdl_option CYGHWR_HAL_SH_CACHE_MODE_P1 {
-            display       "Select cache mode set for P1 at startup"
-            default_value { "WRITE_BACK" }
-            legal_values  { "WRITE_BACK" "WRITE_THROUGH" }
-            flavor        data
-            description "
-                Controls what cache mode the cache should be put in at
-                startup for area P1. Write-back mode improves
-                performance by letting dirty data to be kept in the
-                cache for a period of time, allowing mutiple writes to
-                the same cache line to be written back to memory in
-                one memory transaction. In Write-through mode, each
-                individual write will cause a memory transaction."
-        }
-    }
-
-
-    cdl_component CYGHWR_HAL_SH_CLOCK_SETTINGS {
-        display          "SH on-chip generic clock controls"
-        description      "
-            The various clocks used by the system are controlled by
-            these options, some of which are derived from platform
-            settings."
-        flavor        none
-        no_define
-
-        cdl_interface CYGINT_HAL_SH_CPG_V1 {
-            display     "Clock pulse generator type 1"
-        }
-
-        cdl_interface CYGINT_HAL_SH_CPG_V2 {
-            display     "Clock pulse generator type 2"
-        }
-
-        cdl_interface CYGINT_HAL_SH_CPG_V3 {
-            display     "Clock pulse generator type 3"
-        }
-
-
-        cdl_option CYGHWR_HAL_SH_TMU_PRESCALE_0 {
-            display       "TMU counter 0 prescaling"
-            description   "
-                The peripheral clock is driving the counter used for
-                the real-time clock, prescaled by this factor."
-            flavor        data
-            legal_values  { 4 16 64 256 }
-            default_value 4
-        }
-
-
-        cdl_option CYGHWR_HAL_SH_CLOCK_CKIO {
-            display    "CKIO clock"
-            no_define
-            flavor     data
-            # CKIO is either XTAL or PLL2 output
-            calculated { CYGINT_HAL_SH_CPG_V1 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 7) 
-                             ? (CYGHWR_HAL_SH_OOC_XTAL)
-                             : CYGHWR_HAL_SH_PLL2_OUTPUT
-                         )
-                         : CYGINT_HAL_SH_CPG_V2 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 2) 
-                             ? (CYGHWR_HAL_SH_OOC_XTAL)
-                             : CYGHWR_HAL_SH_PLL2_OUTPUT
-                         )
-                         : CYGINT_HAL_SH_CPG_V3 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 7) 
-                             ? (CYGHWR_HAL_SH_OOC_XTAL)
-                             : CYGHWR_HAL_SH_PLL2_OUTPUT
-                         )
-                         : 0 }
-        }
-
-        cdl_option CYGHWR_HAL_SH_PLL1_OUTPUT {
-            display    "The clock output from PLL1"
-            no_define
-            flavor     data
-            calculated { CYGHWR_HAL_SH_CLOCK_CKIO * CYGHWR_HAL_SH_OOC_PLL_1 }
-        }
-
-        cdl_option CYGHWR_HAL_SH_PLL2_OUTPUT {
-            display    "The clock output from PLL2"
-            no_define
-            flavor     data
-            calculated { CYGINT_HAL_SH_CPG_V1 ? (
-                             (CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_2)
-                         )
-                         : CYGINT_HAL_SH_CPG_V2 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 5)
-                             ? (CYGHWR_HAL_SH_OOC_XTAL / 2)
-                             : (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 6) 
-                             ? (14745600)
-                             : (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 7) 
-                             ? (11075600)
-                             : (CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_2)
-                         )
-                         : CYGINT_HAL_SH_CPG_V3 ? (
-                             (CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_2)
-                         )
-                         : 0 }
-        }
-
-
-        cdl_option CYGHWR_HAL_SH_DIVIDER1_INPUT {
-            display    "The clock input to divider 1"
-            no_define
-            flavor     data
-            # DIV1 input is either PLL2 output or PLL1 output
-            calculated { (CYGHWR_HAL_SH_OOC_PLL_1 == 0)
-                           ? CYGHWR_HAL_SH_PLL2_OUTPUT
-                           : CYGHWR_HAL_SH_PLL1_OUTPUT }
-        }
-
-        cdl_option CYGHWR_HAL_SH_DIVIDER2_INPUT {
-            display    "The clock input to divider 2"
-            no_define
-            flavor     data
-            # DIV2 input is either PLL2 output or PLL1 output
-            calculated { CYGINT_HAL_SH_CPG_V1 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 3 || CYGHWR_HAL_SH_OOC_CLOCK_MODE == 4)
-                             ? CYGHWR_HAL_SH_PLL2_OUTPUT
-                             : CYGHWR_HAL_SH_PLL1_OUTPUT
-                         )
-                         : CYGINT_HAL_SH_CPG_V2 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE <= 2)
-                             ? CYGHWR_HAL_SH_PLL1_OUTPUT
-                             : CYGHWR_HAL_SH_PLL2_OUTPUT
-                         )
-                         : CYGINT_HAL_SH_CPG_V3 ? (
-                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 3 || CYGHWR_HAL_SH_OOC_CLOCK_MODE == 4)
-                             ? CYGHWR_HAL_SH_PLL2_OUTPUT
-                             : CYGHWR_HAL_SH_PLL1_OUTPUT
-                         )
-                         : 0 }
-        }
-
-        cdl_option CYGHWR_HAL_SH_PROCESSOR_SPEED {
-            display          "Processor clock speed (MHz)"
-            flavor           data
-            calculated       { CYGHWR_HAL_SH_DIVIDER1_INPUT / CYGHWR_HAL_SH_OOC_DIVIDER_1 }
-            description      "
-                The core (CPU, cache and MMU) speed is computed from
-                the input clock speed and the divider 1 setting."
-        }
-
-        cdl_option CYGHWR_HAL_SH_BOARD_SPEED {
-            display          "Platform bus clock speed (MHz)"
-            flavor           data
-            calculated       { CYGHWR_HAL_SH_CLOCK_CKIO }
-            description      "
-                The platform bus speed is CKIO."
-        }
-
-        cdl_option CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED {
-            display          "Processor on-chip peripheral clock speed (MHz)"
-            flavor           data
-            calculated       { CYGHWR_HAL_SH_DIVIDER2_INPUT / CYGHWR_HAL_SH_OOC_DIVIDER_2 }
-            description      "
-                The peripheral speed is computed from the input clock
-                speed and the divider 2 settings."
-        }
     }
 
     # Real-time clock/counter specifics
--- a/packages/hal/sh/arch/current/include/hal_cache.h
+++ b/packages/hal/sh/arch/current/include/hal_cache.h
@@ -50,246 +50,8 @@
 //=============================================================================
 
 #include <pkgconf/system.h>
-#include <pkgconf/hal.h>
-#include <cyg/infra/cyg_type.h>
-#include <cyg/hal/hal_io.h>             // HAL_READ/WRITE macros
-
-#include CYGBLD_HAL_CPU_MODULES_H       // cache module specs
-
-#include <cyg/hal/sh_regs.h>            // CYGARC_REG_ definitions
-
-//-----------------------------------------------------------------------------
-// Cache dimensions - one unified cache
-
-#define HAL_CACHE_UNIFIED
-
-#define HAL_UCACHE_SIZE                 CYGARC_SH_MOD_CAC_SIZE
-#define HAL_UCACHE_LINE_SIZE            CYGARC_SH_MOD_CAC_LINE_SIZE
-#define HAL_UCACHE_WAYS                 CYGARC_SH_MOD_CAC_WAYS
-
-// Cache addressing information
-#define CYGARC_REG_CACHE_ADDRESS_BASE   CYGARC_SH_MOD_CAC_ADDRESS_BASE
-#define CYGARC_REG_CACHE_ADDRESS_TOP    CYGARC_SH_MOD_CAC_ADDRESS_TOP
-#define CYGARC_REG_CACHE_ADDRESS_STEP   CYGARC_SH_MOD_CAC_ADDRESS_STEP
-
-// Writing this to a cache address entry forces a flush of the line if
-// it is dirty.
-#define CYGARC_REG_CACHE_ADDRESS_FLUSH  CYGARC_SH_MOD_CAC_ADDRESS_FLUSH
-
-#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
-
-//-----------------------------------------------------------------------------
-// Global control of cache
-
-// This is all handled in assembly (see vectors.S) due to a requirement about
-// not fiddling the cache from cachable memory.
-
-externC void cyg_hal_cache_enable(void);
-externC void cyg_hal_cache_disable(void);
-externC void cyg_hal_cache_invalidate_all(void);
-externC void cyg_hal_cache_sync(void);
-externC void cyg_hal_cache_sync_region(cyg_haladdress base, 
-                                       cyg_haladdrword len);
-externC void cyg_hal_cache_write_mode(int mode);
-
-// Enable the cache
-#define HAL_UCACHE_ENABLE() cyg_hal_cache_enable()
-
-// Disable the cache
-#define HAL_UCACHE_DISABLE() cyg_hal_cache_disable()
-
-// Invalidate the entire cache
-#define HAL_UCACHE_INVALIDATE_ALL() cyg_hal_cache_invalidate_all()
-
-// Synchronize the contents of the cache with memory.
-#define HAL_UCACHE_SYNC() cyg_hal_cache_sync()
-
-// Query the state of the cache (does not affect the caching)
-#define HAL_UCACHE_IS_ENABLED(_state_)          \
-    CYG_MACRO_START                             \
-    HAL_READ_UINT32(CYGARC_REG_CCR, (_state_)); \
-    (_state_) &= ~CYGARC_REG_CCR_CE;            \
-    CYG_MACRO_END
-
-// Set the cache refill burst size
-//#define HAL_UCACHE_BURST_SIZE(_size_)
-
-// Set the cache write mode
-#define HAL_UCACHE_WRITE_MODE( _mode_ )         \
-    CYG_MACRO_START                             \
-    cyg_uint32 _m_;                             \
-    if (HAL_UCACHE_WRITETHRU_MODE == _mode_)    \
-      _m_ = CYGARC_REG_CCR_WT;                  \
-    else                                        \
-      _m_ = CYGARC_REG_CCR_CB;                  \
-    cyg_hal_cache_write_mode(_m_);              \
-    CYG_MACRO_END
-
-#define HAL_UCACHE_WRITETHRU_MODE       0
-#define HAL_UCACHE_WRITEBACK_MODE       1
-
-// This macro allows the client to specify separate modes for the two
-// regions.
-#define HAL_UCACHE_WRITE_MODE_SH( _mode_ ) cyg_hal_cache_write_mode(_mode_)
-
-// Load the contents of the given address range into the cache
-// and then lock the cache so that it stays there.
-//#define HAL_UCACHE_LOCK(_base_, _size_)
-        
-// Undo a previous lock operation
-//#define HAL_UCACHE_UNLOCK(_base_, _size_)
-
-// Unlock entire cache
-//#define HAL_UCACHE_UNLOCK_ALL()
-
-//-----------------------------------------------------------------------------
-// Cache line control
-
-// Allocate cache lines for the given address range without reading its
-// contents from memory.
-//#define HAL_UCACHE_ALLOCATE( _base_ , _size_ )
-
-// Write dirty cache lines to memory and invalidate the cache entries
-// for the given address range.
-#define HAL_UCACHE_FLUSH( _base_ , _size_ ) \
- cyg_hal_cache_sync_region(_base_, _size_)
-
-// Invalidate cache lines in the given range without writing to memory.
-//#define HAL_UCACHE_INVALIDATE( _base_ , _size_ )
-
-// Write dirty cache lines to memory for the given address range.
-//#define HAL_UCACHE_STORE( _base_ , _size_ )
-
-
-// Preread the given range into the cache with the intention of reading
-// from it later.
-//#define HAL_UCACHE_READ_HINT( _base_ , _size_ )
-
-// Preread the given range into the cache with the intention of writing
-// to it later.
-//#define HAL_UCACHE_WRITE_HINT( _base_ , _size_ )
 
-// Allocate and zero the cache lines associated with the given range.
-//#define HAL_UCACHE_ZERO( _base_ , _size_ )
-
-
-//-----------------------------------------------------------------------------
-// Data and instruction cache macros map onto the both-cache macros
-
-//-----------------------------------------------------------------------------
-// Global control of data cache
-
-#define HAL_DCACHE_SIZE                 HAL_UCACHE_SIZE
-#define HAL_DCACHE_LINE_SIZE            HAL_UCACHE_LINE_SIZE
-#define HAL_DCACHE_WAYS                 HAL_UCACHE_WAYS
-#define HAL_DCACHE_SETS                 HAL_UCACHE_SETS
-
-// Enable the data cache
-#define HAL_DCACHE_ENABLE()             HAL_UCACHE_ENABLE()
-
-// Disable the data cache
-#define HAL_DCACHE_DISABLE()            HAL_UCACHE_DISABLE()
-
-// Invalidate the entire cache
-#define HAL_DCACHE_INVALIDATE_ALL()     HAL_UCACHE_INVALIDATE_ALL()
-
-// Synchronize the contents of the cache with memory.
-#define HAL_DCACHE_SYNC()               HAL_UCACHE_SYNC()
-
-// Query the state of the data cache
-#define HAL_DCACHE_IS_ENABLED(_state_)  HAL_UCACHE_IS_ENABLED(_state_)
-
-// Set the data cache refill burst size
-//#define HAL_DCACHE_BURST_SIZE(_size_)
-
-// Set the data cache write mode
-//#define HAL_DCACHE_WRITE_MODE( _mode_ )
-
-//#define HAL_DCACHE_WRITETHRU_MODE       0
-//#define HAL_DCACHE_WRITEBACK_MODE       1
-
-// Load the contents of the given address range into the data cache
-// and then lock the cache so that it stays there.
-//#define HAL_DCACHE_LOCK(_base_, _size_)
-
-// Undo a previous lock operation
-//#define HAL_DCACHE_UNLOCK(_base_, _size_)
-
-// Unlock entire cache
-//#define HAL_DCACHE_UNLOCK_ALL()
-
-//-----------------------------------------------------------------------------
-// Data cache line control
-
-// Allocate cache lines for the given address range without reading its
-// contents from memory.
-//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ )
-
-// Write dirty cache lines to memory and invalidate the cache entries
-// for the given address range.
-#define HAL_DCACHE_FLUSH( _base_ , _size_ ) HAL_UCACHE_FLUSH( _base_, _size_ )
+#include <cyg/hal/var_cache.h>          // get variant cache handling
 
-// Invalidate cache lines in the given range without writing to memory.
-//#define HAL_DCACHE_INVALIDATE( _base_ , _size_ )
-
-// Write dirty cache lines to memory for the given address range.
-//#define HAL_DCACHE_STORE( _base_ , _size_ )
-
-// Preread the given range into the cache with the intention of reading
-// from it later.
-//#define HAL_DCACHE_READ_HINT( _base_ , _size_ )
-
-// Preread the given range into the cache with the intention of writing
-// to it later.
-//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ )
-
-// Allocate and zero the cache lines associated with the given range.
-//#define HAL_DCACHE_ZERO( _base_ , _size_ )
-
-//-----------------------------------------------------------------------------
-// Global control of Instruction cache
-
-#define HAL_ICACHE_SIZE                 HAL_UCACHE_SIZE
-#define HAL_ICACHE_LINE_SIZE            HAL_UCACHE_LINE_SIZE
-#define HAL_ICACHE_WAYS                 HAL_UCACHE_WAYS
-#define HAL_ICACHE_SETS                 HAL_UCACHE_SETS
-
-// Enable the instruction cache
-#define HAL_ICACHE_ENABLE()             HAL_UCACHE_ENABLE()
-
-// Disable the instruction cache
-#define HAL_ICACHE_DISABLE()            HAL_UCACHE_DISABLE()
-
-// Invalidate the entire cache
-#define HAL_ICACHE_INVALIDATE_ALL()     HAL_UCACHE_INVALIDATE_ALL()
-
-
-// Synchronize the contents of the cache with memory.
-#define HAL_ICACHE_SYNC()               HAL_UCACHE_SYNC()
-
-// Query the state of the instruction cache
-#define HAL_ICACHE_IS_ENABLED(_state_)  HAL_UCACHE_IS_ENABLED(_state_)
-
-// Set the instruction cache refill burst size
-//#define HAL_ICACHE_BURST_SIZE(_size_)
-
-// Load the contents of the given address range into the instruction cache
-// and then lock the cache so that it stays there.
-
-//#define HAL_ICACHE_LOCK(_base_, _size_)
-
-// Undo a previous lock operation
-//#define HAL_ICACHE_UNLOCK(_base_, _size_)
-
-// Unlock entire cache
-//#define HAL_ICACHE_UNLOCK_ALL()
-
-//-----------------------------------------------------------------------------
-// Instruction cache line control
-
-// Invalidate cache lines in the given range without writing to memory.
-//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ )
-
-//-----------------------------------------------------------------------------
 #endif // ifndef CYGONCE_HAL_CACHE_H
 // End of hal_cache.h
--- a/packages/hal/sh/arch/current/include/hal_intr.h
+++ b/packages/hal/sh/arch/current/include/hal_intr.h
@@ -51,13 +51,14 @@
 //==========================================================================
 
 #include <pkgconf/hal.h>
-#include CYGBLD_HAL_CPU_MODULES_H       // INTC module selection
+
+#include <cyg/hal/var_intr.h>
 
 // More include statements below. First part of this file must be
 // usable for both assembly and C files, so only use defines here.
 
 //--------------------------------------------------------------------------
-// SH3 exception vectors. These correspond to VSRs and are the values
+// SH exception vectors. These correspond to VSRs and are the values
 // to use for HAL_VSR_GET/SET
 //
 // Note that exceptions are decoded - there is a VSR slot for each exception
@@ -72,27 +73,29 @@
 #define CYGNUM_HAL_VECTOR_TLBERROR_WRITE         6 // TLB prot violation s
 #define CYGNUM_HAL_VECTOR_DATA_ACCESS            7 // address error (load)
 #define CYGNUM_HAL_VECTOR_DATA_WRITE             8 // address error (store)
-// define CYGNUM_HAL_VECTOR_RESERVED_9           9
-// define CYGNUM_HAL_VECTOR_RESERVED_10         10
+// RESERVED 9-10
 #define CYGNUM_HAL_VECTOR_TRAP                  11 // unconditional trap
 #define CYGNUM_HAL_VECTOR_ILLEGAL_INSTRUCTION   12 // reserved instruction
 #define CYGNUM_HAL_VECTOR_ILLEGAL_SLOT_INSTRUCTION  13 
                                            // illegal instruction in delay slot
-// define CYGNUM_HAL_VECTOR_RESERVED_14         14
+#define CYGNUM_HAL_VECTOR_NMI                   14 // NMI
 #define CYGNUM_HAL_VECTOR_INSTRUCTION_BP        15 // user breakpoint
 
-#define CYG_VECTOR_IS_INTERRUPT(v)   \
-    (CYGNUM_HAL_VECTOR_INSTRUCTION_BP < (v))
-
 #define CYGNUM_HAL_VECTOR_INTERRUPT             16 // all interrupts
 
+#ifndef CYG_VECTOR_IS_INTERRUPT
+# define CYG_VECTOR_IS_INTERRUPT(v) (CYGNUM_HAL_VECTOR_INSTRUCTION_BP < (v))
+#endif
+
 #define CYGNUM_HAL_VSR_MIN                   CYGNUM_HAL_VECTOR_POWERON
-#define CYGNUM_HAL_VSR_MAX                   CYGNUM_HAL_VECTOR_INTERRUPT
+#ifndef CYGNUM_HAL_VSR_MAX
+# define CYGNUM_HAL_VSR_MAX                  CYGNUM_HAL_VECTOR_INTERRUPT
+#endif
 #define CYGNUM_HAL_VSR_COUNT                 ( CYGNUM_HAL_VSR_MAX + 1 )
 
-#define CYGNUM_HAL_VSR_EXCEPTION_COUNT       (CYGNUM_HAL_VECTOR_INSTRUCTION_BP-CYGNUM_HAL_VECTOR_POWERON+1)
-
-
+#ifndef CYGNUM_HAL_VSR_EXCEPTION_COUNT
+# define CYGNUM_HAL_VSR_EXCEPTION_COUNT       (CYGNUM_HAL_VECTOR_INSTRUCTION_BP-CYGNUM_HAL_VECTOR_POWERON+1)
+#endif
 
 // The decoded interrupts.
 #define CYGNUM_HAL_INTERRUPT_NMI             0
@@ -128,74 +131,24 @@
 #define CYGNUM_HAL_INTERRUPT_REF_RCMI        30
 #define CYGNUM_HAL_INTERRUPT_REF_ROVI        31
 
-#define CYGNUM_HAL_ISR_MAX                   CYGNUM_HAL_INTERRUPT_REF_ROVI
+#ifndef CYGNUM_HAL_ISR_MAX
+# define CYGNUM_HAL_ISR_MAX                  CYGNUM_HAL_INTERRUPT_REF_ROVI
+#endif
 
-//----------------------------------------------------------------------------
-// Additional vectors provided by INTC V2
+#define CYGNUM_HAL_ISR_MIN                   CYGNUM_HAL_INTERRUPT_NMI
+#define CYGNUM_HAL_ISR_COUNT                 ( CYGNUM_HAL_ISR_MAX - CYGNUM_HAL_ISR_MIN + 1 )
 
-//#ifdef CYGARC_SH_MOD_INTC_V2 // FIXME
-#define CYGNUM_HAL_INTERRUPT_RESERVED_5C0    32
-#define CYGNUM_HAL_INTERRUPT_HUDI_HUDI       33
-#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ0        34
-#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ1        35
-#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ2        36
-#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ3        37
-#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ4        38
-#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ5        39
-#define CYGNUM_HAL_INTERRUPT_RESERVED_6C0    40
-#define CYGNUM_HAL_INTERRUPT_RESERVED_6E0    41
-#define CYGNUM_HAL_INTERRUPT_PINT_PINT07     42
-#define CYGNUM_HAL_INTERRUPT_PINT_PINT8F     43
-#define CYGNUM_HAL_INTERRUPT_RESERVED_740    44
-#define CYGNUM_HAL_INTERRUPT_RESERVED_760    45
-#define CYGNUM_HAL_INTERRUPT_RESERVED_780    46
-#define CYGNUM_HAL_INTERRUPT_RESERVED_7A0    47
-#define CYGNUM_HAL_INTERRUPT_RESERVED_7C0    48
-#define CYGNUM_HAL_INTERRUPT_RESERVED_7E0    59
-#define CYGNUM_HAL_INTERRUPT_DMAC_DEI0       50
-#define CYGNUM_HAL_INTERRUPT_DMAC_DEI1       51
-#define CYGNUM_HAL_INTERRUPT_DMAC_DEI2       52
-#define CYGNUM_HAL_INTERRUPT_DMAC_DEI3       53
-#define CYGNUM_HAL_INTERRUPT_IRDA_ERI1       54
-#define CYGNUM_HAL_INTERRUPT_IRDA_RXI1       55
-#define CYGNUM_HAL_INTERRUPT_IRDA_BRI1       56
-#define CYGNUM_HAL_INTERRUPT_IRDA_TXI1       57
-#define CYGNUM_HAL_INTERRUPT_SCIF_ERI2       58
-#define CYGNUM_HAL_INTERRUPT_SCIF_RXI2       59
-#define CYGNUM_HAL_INTERRUPT_SCIF_BRI2       60
-#define CYGNUM_HAL_INTERRUPT_SCIF_TXI2       61
-#define CYGNUM_HAL_INTERRUPT_ADC_ADI         62
+// The vector used by the Real time clock
+#ifndef CYGNUM_HAL_INTERRUPT_RTC
+# define CYGNUM_HAL_INTERRUPT_RTC             CYGNUM_HAL_INTERRUPT_TMU0_TUNI0
+#endif
 
-#ifdef CYGARC_SH_MOD_INTC_V2 // FIXME
-
-#undef  CYGNUM_HAL_ISR_MAX
-#define CYGNUM_HAL_ISR_MAX                   CYGNUM_HAL_INTERRUPT_ADC_ADI
-
-#endif // CYGARC_SH_MOD_INTC_V2
-
-//----------------------------------------------------------------------------
-// Additional vectors provided by INTC V3
-
-//#ifdef CYGARC_SH_MOD_INTC_V3 // FIXME
-#define CYGNUM_HAL_INTERRUPT_LCDC_LCDI       63
-#define CYGNUM_HAL_INTERRUPT_PCC_PCC0        64
-#define CYGNUM_HAL_INTERRUPT_PCC_PCC1        65
-
-#ifdef CYGARC_SH_MOD_INTC_V3 // FIXME
-
-#undef  CYGNUM_HAL_ISR_MAX
-#define CYGNUM_HAL_ISR_MAX                   CYGNUM_HAL_INTERRUPT_PCC_PCC1
-
-#endif // CYGARC_SH_MOD_INTC_V3
-
-// CYGNUM_HAL_ISR_COUNT must match CYG_ISR_TABLE_SIZE defined in vectors.S.
-#define CYGNUM_HAL_ISR_MIN                   CYGNUM_HAL_INTERRUPT_NMI
-#define CYGNUM_HAL_ISR_COUNT                 ( CYGNUM_HAL_ISR_MAX + 1 )
-
+//--------------------------------------------------------------------------
 // Exception vectors. These are the values used when passed out to an
 // external exception handler using cyg_hal_deliver_exception()
 
-// The exception indexes are EXPEVT/0x20
+// The exception indexes are EXPEVT/0x20. Variants may define additional
+// exception vectors.
 
 #define CYGNUM_HAL_EXCEPTION_POWERON                0 // power-on
 #define CYGNUM_HAL_EXCEPTION_RESET                  1 // reset
@@ -206,23 +159,21 @@
 #define CYGNUM_HAL_EXCEPTION_TLBERROR_WRITE         6 // TLB prot violation s
 #define CYGNUM_HAL_EXCEPTION_DATA_ACCESS            7 // address error (load)
 #define CYGNUM_HAL_EXCEPTION_DATA_WRITE             8 // address error (store)
-// define CYGNUM_HAL_EXCEPTION_RESERVED_9           9
-// define CYGNUM_HAL_EXCEPTION_RESERVED_10         10
 #define CYGNUM_HAL_EXCEPTION_TRAP                  11 // unconditional trap
 #define CYGNUM_HAL_EXCEPTION_ILLEGAL_INSTRUCTION   12 // reserved instruction
 #define CYGNUM_HAL_EXCEPTION_ILLEGAL_SLOT_INSTRUCTION  13 
                                            // illegal instruction in delay slot
-// define CYGNUM_HAL_EXCEPTION_RESERVED_14         14
 #define CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP        15 // user breakpoint
 
 #define CYGNUM_HAL_EXCEPTION_MIN          CYGNUM_HAL_EXCEPTION_POWERON
-#define CYGNUM_HAL_EXCEPTION_MAX          CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP
+
+#ifndef CYGNUM_HAL_EXCEPTION_MAX
+# define CYGNUM_HAL_EXCEPTION_MAX         CYGNUM_HAL_EXCEPTION_INSTRUCTION_BP
+#endif
+
 #define CYGNUM_HAL_EXCEPTION_COUNT           \
                  ( CYGNUM_HAL_EXCEPTION_MAX - CYGNUM_HAL_EXCEPTION_MIN + 1 )
 
-// The vector used by the Real time clock
-#define CYGNUM_HAL_INTERRUPT_RTC             CYGNUM_HAL_INTERRUPT_TMU0_TUNI0
-
 #ifndef __ASSEMBLER__
 
 #include <cyg/infra/cyg_type.h>
deleted file mode 100644
--- a/packages/hal/sh/arch/current/include/mod_7707a.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef CYGONCE_HAL_MOD_77xx_H
-#define CYGONCE_HAL_MOD_77xx_H
-
-//=============================================================================
-//
-//      mod_7707a.h
-//
-//      List modules available on CPU
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        2000-06-08
-// Purpose:     Define modules (and versions) available on this CPU.
-// Usage:       Included from <cyg/hal/sh_regs.h>
-//
-//              
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-//-----------------------------------------------------------------------------
-// Modules provided by the CPU
-
-#define CYGARC_SH_MOD_BCN_V2
-#define CYGARC_SH_MOD_INTC_V2
-#define CYGARC_SH_MOD_INTC_V3
-#define CYGARC_SH_MOD_IRDA
-#define CYGARC_SH_MOD_SCIF
-#define CYGARC_SH_MOD_PFC
-#define CYGARC_SH_MOD_UBC_V1
-#define CYGARC_SH_MOD_CPG_V2
-
-//-----------------------------------------------------------------------------
-// Extra details for Cache Module (CAC)
-
-// Cache dimenions - one unified cache
-#define CYGARC_SH_MOD_CAC_SIZE        16384 // Size of cache in bytes
-#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
-#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
-
-// Cache addressing information
-// way:   bits 13 - 12
-// entry: bits 11 -  4
-#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
-#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0004000
-#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
-// U : bit 1
-// V : bit 0
-// Writing zero to both forces a flush of the line if it is dirty.
-#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
-
-//-----------------------------------------------------------------------------
-// Extra details for interrupt handling
-#define CYGARC_SH_SOFTWARE_IP_UPDATE
-
-#endif // CYGONCE_HAL_MOD_77xx_H
deleted file mode 100644
--- a/packages/hal/sh/arch/current/include/mod_7708.h
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef CYGONCE_HAL_MOD_77xx_H
-#define CYGONCE_HAL_MOD_77xx_H
-
-//=============================================================================
-//
-//      mod_7708.h
-//
-//      List modules available on CPU
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        2000-03-16
-// Purpose:     Define modules (and versions) available on this CPU.
-// Usage:       Included from <cyg/hal/sh_regs.h>
-//
-//              
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-//-----------------------------------------------------------------------------
-// Modules provided by the CPU
-
-#define CYGARC_SH_MOD_SCI_V2
-#define CYGARC_SH_MOD_UBC_V1
-#define CYGARC_SH_MOD_CPG_V1
-
-
-//-----------------------------------------------------------------------------
-// Extra details for Cache Module (CAC)
-
-// Cache dimenions - one unified cache
-#define CYGARC_SH_MOD_CAC_SIZE        8192  // Size of cache in bytes
-#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
-#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
-
-// Cache addressing information
-// way:   bits 12 - 11
-// entry: bits 10 -  4
-#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
-#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0002000
-#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
-// U : bit 1
-// V : bit 0
-// Writing zero to both forces a flush of the line if it is dirty.
-#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
-
-//-----------------------------------------------------------------------------
-// Extra details for interrupt handling
-#define CYGARC_SH_SOFTWARE_IP_UPDATE
-
-#endif // CYGONCE_HAL_MOD_77xx_H
deleted file mode 100644
--- a/packages/hal/sh/arch/current/include/mod_7709a.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef CYGONCE_HAL_MOD_77xx_H
-#define CYGONCE_HAL_MOD_77xx_H
-
-//=============================================================================
-//
-//      mod_7709a.h
-//
-//      List modules available on CPU
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        2000-03-16
-// Purpose:     Define modules (and versions) available on this CPU.
-// Usage:       Included from <cyg/hal/sh_regs.h>
-//
-//              
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-//-----------------------------------------------------------------------------
-// Modules provided by the CPU
-
-#define CYGARC_SH_MOD_BCN_V2
-#define CYGARC_SH_MOD_INTC_V2
-#define CYGARC_SH_MOD_IRDA
-#define CYGARC_SH_MOD_SCIF
-#define CYGARC_SH_MOD_PFC
-#define CYGARC_SH_MOD_UBC_V2
-#define CYGARC_SH_MOD_DMAC
-#define CYGARC_SH_MOD_CPG_V3
-
-//-----------------------------------------------------------------------------
-// Extra details for Cache Module (CAC)
-
-// Cache dimenions - one unified cache
-#define CYGARC_SH_MOD_CAC_SIZE        16384 // Size of cache in bytes
-#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
-#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
-
-// Cache addressing information
-// way:   bits 13 - 12
-// entry: bits 11 -  4
-#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
-#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0004000
-#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
-// U : bit 1
-// V : bit 0
-// Writing zero to both forces a flush of the line if it is dirty.
-#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
-
-//-----------------------------------------------------------------------------
-// Extra details for interrupt handling
-#define CYGARC_SH_SOFTWARE_IP_UPDATE
-
-#endif // CYGONCE_HAL_MOD_77xx_H
deleted file mode 100644
--- a/packages/hal/sh/arch/current/include/mod_7729.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#ifndef CYGONCE_HAL_MOD_77xx_H
-#define CYGONCE_HAL_MOD_77xx_H
-
-//=============================================================================
-//
-//      mod_7729.h
-//
-//      List modules available on CPU
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        2000-08-29
-// Purpose:     Define modules (and versions) available on this CPU.
-// Usage:       Included from <cyg/hal/sh_regs.h>
-//
-//              
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-//-----------------------------------------------------------------------------
-// Modules provided by the CPU
-
-#define CYGARC_SH_MOD_BCN_V2
-#define CYGARC_SH_MOD_INTC_V2
-#define CYGARC_SH_MOD_INTC_V3
-#define CYGARC_SH_MOD_PFC
-#define CYGARC_SH_MOD_IRDA
-#define CYGARC_SH_MOD_SCIF
-#define CYGARC_SH_MOD_UBC_V3
-#define CYGARC_SH_MOD_CPG_V3
-
-//-----------------------------------------------------------------------------
-// Extra details for Cache Module (CAC)
-
-// Cache dimenions - one unified cache
-#define CYGARC_SH_MOD_CAC_SIZE        16384 // Size of cache in bytes
-#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
-#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
-
-// Cache addressing information
-// way:   bits 13 - 12
-// entry: bits 11 -  4
-#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
-#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0004000
-#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
-// U : bit 1
-// V : bit 0
-// Writing zero to both forces a flush of the line if it is dirty.
-#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
-
-//-----------------------------------------------------------------------------
-// Extra details for interrupt handling
-#define CYGARC_SH_SOFTWARE_IP_UPDATE
-
-#endif // CYGONCE_HAL_MOD_77xx_H
deleted file mode 100644
--- a/packages/hal/sh/arch/current/include/sh3_sci.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//=============================================================================
-//
-//      sh3_sci.h
-//
-//      Simple driver for the SH Serial Communication Interface (SCI)
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        1999-05-17
-//
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/hal.h>
-
-#ifdef CYGNUM_HAL_SH_SH3_SCI_PORTS
-
-//--------------------------------------------------------------------------
-// SCI register offsets
-#ifdef CYGARC_SH_MOD_SCI_V2
-# define _REG_SCSPTR             -0x4 // serial port register
-#endif
-#define _REG_SCSMR                0x0 // serial mode register
-#define _REG_SCBRR                0x2 // bit rate register
-#define _REG_SCSCR                0x4 // serial control register
-#define _REG_SCTDR                0x6 // transmit data register
-#define _REG_SCSSR                0x8 // serial status register
-#define _REG_SCRDR                0xa // receive data register
-
-//--------------------------------------------------------------------------
-
-typedef struct {
-    cyg_uint8* base;
-    cyg_int32 msec_timeout;
-    int isr_vector;
-} channel_data_t;
-
-//--------------------------------------------------------------------------
-
-#if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
-// This one should only be used by old-stub compatibility code!
-externC void cyg_hal_plf_sci_init_channel(const channel_data_t* chan);
-#endif
-
-externC cyg_uint8 cyg_hal_plf_sci_getc(void* __ch_data);
-externC void cyg_hal_plf_sci_putc(void* __ch_data, cyg_uint8 c);
-externC void cyg_hal_plf_sci_init(int sci_index, int comm_index, 
-                                  int rcv_vect, cyg_uint8* base);
-
-
-#endif // CYGNUM_HAL_SH_SH3_SCI_PORTS
-//-----------------------------------------------------------------------------
-// end of sh3_sci.h
deleted file mode 100644
--- a/packages/hal/sh/arch/current/include/sh3_scif.h
+++ /dev/null
@@ -1,88 +0,0 @@
-//=============================================================================
-//
-//      sh3_scif.h
-//
-//      Simple driver for the SH3 Serial Communication Interface with FIFO
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        2000-03-30
-// Description: Simple driver for the SH Serial Communication Interface
-//              The driver can be used for either the SCIF or the IRDA
-//              modules (the latter can act as the former).
-//              Clients of this file can configure the behavior with:
-//              CYGNUM_SCIF_PORTS: number of SCI ports
-//
-// Note:        It should be possible to configure a channel to IRDA mode.
-//              Worry about that when some board needs it.
-//
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/hal.h>
-
-#ifdef CYGNUM_HAL_SH_SH3_SCIF_PORTS
-
-//--------------------------------------------------------------------------
-// SCIF register offsets
-#define _REG_SCSMR  0x00
-#define _REG_SCBRR  0x02
-#define _REG_SCSCR  0x04
-#define _REG_SCFTDR 0x06
-#define _REG_SCSSR  0x08
-#define _REG_SCFRDR 0x0a
-#define _REG_SCFCR  0x0c
-#define _REG_SCFDR  0x0e
-
-//--------------------------------------------------------------------------
-
-typedef struct {
-    cyg_uint8* base;
-    cyg_int32 msec_timeout;
-    int isr_vector;
-} channel_data_t;
-
-//--------------------------------------------------------------------------
-
-#if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
-// This one should only be used by old-stub compatibility code!
-externC void cyg_hal_plf_scif_init_channel(const channel_data_t* chan);
-#endif
-
-externC cyg_uint8 cyg_hal_plf_scif_getc(void* __ch_data);
-externC void cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c);
-void cyg_hal_plf_scif_init(int scif_index, int comm_index, 
-                           int rcv_vect, cyg_uint8* base);
-
-
-#endif // CYGNUM_HAL_SH_SH3_SCIF_PORTS
-//-----------------------------------------------------------------------------
-// end of sh3_scif.h
--- a/packages/hal/sh/arch/current/include/sh_regs.h
+++ b/packages/hal/sh/arch/current/include/sh_regs.h
@@ -40,7 +40,7 @@
 // Usage:       #include <cyg/hal/sh_regs.h>
 // Notes:
 //   This file describes registers for on-core modules found in all
-//   the SH3 CPUs supported by the HAL. For each CPU is defined a
+//   the SH CPUs supported by the HAL. For each CPU is defined a
 //   module specification file (mod_<CPU model number>.h) which lists
 //   modules (and their version if applicable) included in that
 //   particular CPU model.  Note that the versioning is ad hoc;
@@ -50,1026 +50,7 @@
 //
 //=============================================================================
 
-// Find out which modules are supported by the chosen CPU
-// Note: At them moment only some modules are conditionalized (the ones
-//       not in the 7708). For consistency, all modules should be treated
-//       the same.
 #include <pkgconf/system.h>
-#include CYGBLD_HAL_CPU_MODULES_H
-
-//==========================================================================
-//                             CPU Definitions
-//==========================================================================
-
-//--------------------------------------------------------------------------
-// Status register
-#define CYGARC_REG_SR_MD                0x40000000
-#define CYGARC_REG_SR_RB                0x20000000
-#define CYGARC_REG_SR_BL                0x10000000
-#define CYGARC_REG_SR_M                 0x00000200
-#define CYGARC_REG_SR_Q                 0x00000100
-#define CYGARC_REG_SR_IMASK             0x000000f0
-#define CYGARC_REG_SR_I3                0x00000080
-#define CYGARC_REG_SR_I2                0x00000040
-#define CYGARC_REG_SR_I1                0x00000020
-#define CYGARC_REG_SR_I0                0x00000010
-#define CYGARC_REG_SR_S                 0x00000002
-#define CYGARC_REG_SR_T                 0x00000001
-
-
-//==========================================================================
-//                          Memory Mapped Registers
-//==========================================================================
-
-//++++++ Module MMU ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// MMU control registers
-#define CYGARC_REG_MMUCR                0xffffffe0
-
-#define CYGARC_REG_MMUCR_SV             0x00000100
-#define CYGARC_REG_MMUCR_RC_MASK        0x000000c0
-#define CYGARC_REG_MMUCR_TF             0x00000004
-#define CYGARC_REG_MMUCR_IX             0x00000002
-#define CYGARC_REG_MMUCR_AT             0x00000001
-
-//++++++ Module CAC ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// Cache registers
-#define CYGARC_REG_CCR                  0xffffffec
-
-#define CYGARC_REG_CCR_RA               0x00000020
-#define CYGARC_REG_CCR_CF               0x00000008
-#define CYGARC_REG_CCR_CB               0x00000004
-#define CYGARC_REG_CCR_WT               0x00000002
-#define CYGARC_REG_CCR_CE               0x00000001
-
-//--------------------------------------------------------------------------
-// Cache registers
-#define CYGARC_REG_CCR                  0xffffffec
-
-#define CYGARC_REG_CCR_RA               0x00000020
-#define CYGARC_REG_CCR_CF               0x00000008
-#define CYGARC_REG_CCR_CB               0x00000004
-#define CYGARC_REG_CCR_WT               0x00000002
-#define CYGARC_REG_CCR_CE               0x00000001
-
-
-//--------------------------------------------------------------------------
-// Address array access
-// Address part (base/top/step specified in mod file)
-#define CYGARC_REG_CACHE_ADDRESS_ADDRESS 0x00000008 // compare address
-
-// Data part
-#define CYGARC_REG_CACHE_ADDRESS_TAG_Mask 0x1ffffc00
-#define CYGARC_REG_CACHE_ADDRESS_U 0x00000002 // updated (contains dirty data)
-#define CYGARC_REG_CACHE_ADDRESS_V 0x00000001 // valid
-
-
-//++++++ Module BSC ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// Bus State Control
-#define CYGARC_REG_BCR1                 0xffffff60
-#define CYGARC_REG_BCR2                 0xffffff62
-#define CYGARC_REG_WCR1                 0xffffff64
-#define CYGARC_REG_WCR2                 0xffffff66
-#define CYGARC_REG_MCR                  0xffffff68
-#define CYGARC_REG_DCR                  0xffffff6a
-#define CYGARC_REG_PCR                  0xffffff6c
-#define CYGARC_REG_RTCSR                0xffffff6e
-#define CYGARC_REG_RTCNT                0xffffff70
-#define CYGARC_REG_RTCOR                0xffffff72
-#define CYGARC_REG_RFCR                 0xffffff74
-
-#ifdef CYGARC_SH_MOD_BCN_V2
-# define CYGARC_REG_BCR3                0xffffff7e
-#endif
-
-#define CYGARC_REG_SDMR_AREA2_BASE      0xffffd000
-#define CYGARC_REG_SDMR_AREA3_BASE      0xffffe000
-
-#define CYGARC_REG_BCR1_DRAMTP2         0x0010
-#define CYGARC_REG_BCR1_DRAMTP1         0x0008
-#define CYGARC_REG_BCR1_DRAMTP0         0x0004
-
-// Bus widths for areas
-#define CYGARC_REG_BCR2_A6_8            0x1000
-#define CYGARC_REG_BCR2_A6_16           0x2000
-#define CYGARC_REG_BCR2_A6_32           0x3000
-#define CYGARC_REG_BCR2_A5_8            0x0400
-#define CYGARC_REG_BCR2_A5_16           0x0800
-#define CYGARC_REG_BCR2_A5_32           0x0c00
-#define CYGARC_REG_BCR2_A4_8            0x0100
-#define CYGARC_REG_BCR2_A4_16           0x0200
-#define CYGARC_REG_BCR2_A4_32           0x0300
-#define CYGARC_REG_BCR2_A3_8            0x0040
-#define CYGARC_REG_BCR2_A3_16           0x0080
-#define CYGARC_REG_BCR2_A3_32           0x00c0
-#define CYGARC_REG_BCR2_A2_8            0x0010
-#define CYGARC_REG_BCR2_A2_16           0x0020
-#define CYGARC_REG_BCR2_A2_32           0x0030
-
-// Memory type selection and other IO behavior controls
-#define CYGARC_REG_BCR1_PULA            0x8000 // Pin A25 to A0 Pull-Up
-#define CYGARC_REG_BCR1_PULD            0x4000 // Pin D31 to D0 Pull-Up
-#define CYGARC_REG_BCR1_HIZMEM          0x2000 // Hi-Z memory control
-#define CYGARC_REG_BCR1_HIZCNT          0x1000 // High-Z Control
-#define CYGARC_REG_BCR1_ENDIAN          0x0800 // Endian Flag
-#define CYGARC_REG_BCR1_A0_BST_MASK     0x0600 // Area 0 Burst ROM Control
-#define CYGARC_REG_BCR1_A0_BST_4        0x0200
-#define CYGARC_REG_BCR1_A0_BST_8        0x0400
-#define CYGARC_REG_BCR1_A0_BST_16       0x0600
-#define CYGARC_REG_BCR1_A5_BST_MASK     0x0180 // Area 5 Burst ROM Control
-#define CYGARC_REG_BCR1_A5_BST_4        0x0080
-#define CYGARC_REG_BCR1_A5_BST_8        0x0100
-#define CYGARC_REG_BCR1_A5_BST_16       0x0180
-#define CYGARC_REG_BCR1_A6_BST_MASK     0x0060 // Area 6 Burst ROM Control
-#define CYGARC_REG_BCR1_A6_BST_4        0x0020
-#define CYGARC_REG_BCR1_A6_BST_8        0x0040
-#define CYGARC_REG_BCR1_A6_BST_16       0x0060
-#define CYGARC_REG_BCR1_DRAMTP_MASK     0x001c // Area 2, Area 3 Memory Type
-#define CYGARC_REG_BCR1_A5PCM           0x0002 // Area 5 Bus Type
-#define CYGARC_REG_BCR1_A6PCM           0x0001 // Area 6 Bus Type
-
-// Intercycle wait states
-#define CYGARC_REG_WCR1_WAITSEL         0x8000 // WAIT Sampling Timing Select
-#define CYGARC_REG_WCR1_A6I_MASK        0x3000 // Intercycle Idle Specification
-#define CYGARC_REG_WCR1_A6I_SHIFT       12
-#define CYGARC_REG_WCR1_A5I_MASK        0x0c00
-#define CYGARC_REG_WCR1_A5I_SHIFT       10
-#define CYGARC_REG_WCR1_A4I_MASK        0x0300
-#define CYGARC_REG_WCR1_A4I_SHIFT       8
-#define CYGARC_REG_WCR1_A3I_MASK        0x00c0
-#define CYGARC_REG_WCR1_A3I_SHIFT       6
-#define CYGARC_REG_WCR1_A2I_MASK        0x0030
-#define CYGARC_REG_WCR1_A2I_SHIFT       4
-#define CYGARC_REG_WCR1_A0I_MASK        0x0003
-#define CYGARC_REG_WCR1_A0I_SHIFT       0
-
-#define CYGARC_REG_WCR1_0WS         0
-#define CYGARC_REG_WCR1_1WS         1
-#define CYGARC_REG_WCR1_2WS         2
-#define CYGARC_REG_WCR1_3WS         3
-
-
-// Wait states
-#define CYGARC_REG_WCR2_A6_MASK         0xe000 // Wait states + burst pitch
-#define CYGARC_REG_WCR2_A6_SHIFT        13
-#define CYGARC_REG_WCR2_A5_MASK         0x1c00 // Wait states + burst pitch
-#define CYGARC_REG_WCR2_A5_SHIFT        10
-#define CYGARC_REG_WCR2_A4_MASK         0x0380 // Wait states
-#define CYGARC_REG_WCR2_A4_SHIFT        7
-#define CYGARC_REG_WCR2_A3_MASK         0x0060 // Wait states / CAS latency
-#define CYGARC_REG_WCR2_A3_SHIFT        5
-#define CYGARC_REG_WCR2_A2_MASK         0x0018 // Wait states / CAS latency
-#define CYGARC_REG_WCR2_A2_SHIFT        3
-#define CYGARC_REG_WCR2_A0_MASK         0x0007 // Wait states + burst pitch
-#define CYGARC_REG_WCR2_A0_SHIFT        0
-
-#define CYGARC_REG_WCR2_0WS             0
-#define CYGARC_REG_WCR2_1WS             1
-#define CYGARC_REG_WCR2_2WS             2
-#define CYGARC_REG_WCR2_3WS             3
-#define CYGARC_REG_WCR2_4WS             4
-#define CYGARC_REG_WCR2_6WS             5
-#define CYGARC_REG_WCR2_8WS             6
-#define CYGARC_REG_WCR2_10WS            7
-
-
-//-----------------------------------------------------------------------------
-// Calculate constants needed to drive the proper SDRAM refresh rate. Argument
-// is delay between required refresh events in microseconds (us). Should be
-// available off the SDRAM spec sheet.
-// These should be a part of a fully CDLicized memory controller setup.
-#define CYGARC_RTCSR_PRESCALE(_r_)                                      \
-(((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(4*1000000))<256) ? 4 :              \
- ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(16*1000000))<256) ? 16 :            \
- ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(64*1000000))<256) ? 64 :            \
- ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(256*1000000))<256) ? 256 :          \
- ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(1024*1000000))<256) ? 1024 :        \
- ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(2048*1000000))<256) ? 2048 : 4096)
-
-// These two macros provide the static values we need to stuff into the
-// registers.
-#define CYGARC_RTCSR_CKSx(_r_)                                  \
-    ((   4 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x08 :              \
-     (  16 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x10 :              \
-     (  64 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x18 :              \
-     ( 256 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x20 :              \
-     (1024 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x28 :              \
-     (2048 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x30 : 0x38 )
-
-#define CYGARC_RTCSR_N(_r_)        \
-       (CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(CYGARC_RTCSR_PRESCALE(_r_)*1000000))
-
-
-//++++++ Module UBC ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// User Break Control
-#define CYGARC_REG_BRCR                 0xffffff98 // 16 bit
-
-#define CYGARC_REG_BARA                 0xffffffb0 // 32 bit
-#define CYGARC_REG_BAMRA                0xffffffb4 // 8 bit (v1) / 32 bit
-#define CYGARC_REG_BBRA                 0xffffffb8 // 16 bit
-#define CYGARC_REG_BASRA                0xffffffe4 // 8 bit
-
-#define CYGARC_REG_BARB                 0xffffffa0 // 32 bit
-#define CYGARC_REG_BAMRB                0xffffffa4 // 8 bit (v1) / 32 bit
-#define CYGARC_REG_BASRB                0xffffffe8 // 8 bit
-#define CYGARC_REG_BBRB                 0xffffffa8 // 16 bit
-#define CYGARC_REG_BDRB                 0xffffff90 // 32 bit
-#define CYGARC_REG_BDMRB                0xffffff94 // 32 bit
-
-#ifdef CYGARC_SH_MOD_UBC_V3
-#define CYGARC_REG_BETR                 0xffffff9c // 16 bit
-#define CYGARC_REG_BRSR                 0xffffffac // 32 bit
-#define CYGARC_REG_BRDR                 0xffffffbc // 32 bit
-#endif
-
-#define CYGARC_REG_BRCR_CMFA            0x8000 // condition match flag A
-#define CYGARC_REG_BRCR_CMFB            0x4000 // condition match flag B
-#define CYGARC_REG_BRCR_PCBA            0x0400 // post execute channel A
-#define CYGARC_REG_BRCR_DBEB            0x0080 // data break enable B
-#define CYGARC_REG_BRCR_PCBB            0x0040 // post execute channel B
-#define CYGARC_REG_BRCR_SEQ             0x0008 // sequence condition select
-
-#ifdef CYGARC_SH_MOD_UBC_V1
-#define CYGARC_REG_BAMRA_BASMA          0x04   // BASRA masked
-#define CYGARC_REG_BAMRA_BARA_UNMASKED  0x00   // BARA not masked
-#define CYGARC_REG_BAMRA_BARA_10BIT     0x01   // Lowest 10 bit masked
-#define CYGARC_REG_BAMRA_BARA_12BIT     0x02   // Lowest 12 bit masked
-#define CYGARC_REG_BAMRA_BARA_MASKED    0x03   // All bits masked
-#else
-// mask is fully configurable in other versions of the UBC
-#endif
-
-#ifdef CYGARC_SH_MOD_UBC_V3
-#define CYGARC_REG_BBRA_DMA             0x0080 // Break on DMAC cycle
-#define CYGARC_REG_BBRA_CPU             0x0040 // Break on CPU cycle
-#endif
-#define CYGARC_REG_BBRA_DFETCH          0x0020 // Break on DFETCH
-#define CYGARC_REG_BBRA_IFETCH          0x0010 // Break on IFETCH
-#define CYGARC_REG_BBRA_WRITE           0x0008 // Break on WRITE
-#define CYGARC_REG_BBRA_READ            0x0004 // Break on READ
-#define CYGARC_REG_BBRA_SIZE_LONG       0x0003 // Break on long access
-#define CYGARC_REG_BBRA_SIZE_WORD       0x0002 // Break on word access
-#define CYGARC_REG_BBRA_SIZE_BYTE       0x0001 // Break on byte access
-#define CYGARC_REG_BBRA_SIZE_ANY        0x0000 // Break on any size
-
-
-//++++++ Module CPG ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// Oscillator control registers
-#define CYGARC_REG_FRQCR                0xffffff80
-#define CYGARC_REG_WTCNT                0xffffff84 // read 8bit, write 16bit
-#define CYGARC_REG_WTCSR                0xffffff86 // read 8bit, write 16bit
-
-#define CYGARC_REG_WTCNT_WRITE          0x5a00     // top 8bit value for write
-
-#define CYGARC_REG_WTCSR_WRITE          0xa500     // top 8bit value for write
-#define CYGARC_REG_WTCSR_TME            0x80       // timer enable
-#define CYGARC_REG_WTCSR_WT_IT          0x40       // watchdog(1)/interval(0)
-#define CYGARC_REG_WTCSR_RSTS           0x20       // manual(1)/poweron(0)
-#define CYGARC_REG_WTCSR_WOVF           0x10       // watchdog overflow
-#define CYGARC_REG_WTCSR_IOVF           0x08       // interval overflow
-#define CYGARC_REG_WTCSR_CKS2           0x04       // clock select 2
-#define CYGARC_REG_WTCSR_CKS1           0x02       // clock select 1
-#define CYGARC_REG_WTCSR_CKS0           0x01       // clock select 0
-#define CYGARC_REG_WTCSR_CKSx_MASK      0x07       // clock select mask
-// This is the period (in us) between watchdog reset and overflow.
-// Note: We use max timeout delay for now.
-#define CYGARC_REG_WTCSR_CKSx_SETTING   0x07       // max delay
-
-#define CYGARC_REG_WTCSR_PERIOD         ((1000000000/(CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/4096))*256)
-
-// Translate various CDL clock configurations to register equivalents
-// for the various CPG versions
-#if   defined(CYGARC_SH_MOD_CPG_V1) // ---------------------------- V1
-
-// PLL1
-#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0) || (CYGHWR_HAL_SH_OOC_PLL_1 == 1)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 2)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0010
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 4)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0020
-#else
-# error "Unsupported PLL1 setting"
-#endif
-
-// Divider1
-#if   (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 1)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 2)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0004
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 4)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0008
-#else
-# error "Unsupported Divider1 setting"
-#endif
-
-// Divider2
-#if   (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 1)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 2)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0001
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 4)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0002
-#else
-# error "Unsupported Divider1 setting"
-#endif
-
-// CKOEN - set in all modes but 7
-#if (CYGHWR_HAL_SH_OOC_CLOCK_MODE != 7)
-# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0100
-#else
-# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
-#endif
-
-#elif defined(CYGARC_SH_MOD_CPG_V2) // ---------------------------- V2
-
-// PLL1
-#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0) || (CYGHWR_HAL_SH_OOC_PLL_1 == 1)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 2)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0010
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 4)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0020
-#else
-# error "Unsupported PLL1 setting"
-#endif
-
-// Divider1
-#if   (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 1)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 2)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0004
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 4)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0008
-#else
-# error "Unsupported Divider1 setting"
-#endif
-
-// Divider2
-#if   (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 1)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 2)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0001
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 4)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0002
-#else
-# error "Unsupported Divider1 setting"
-#endif
-
-// CKOEN - set in all modes but 2
-#if (CYGHWR_HAL_SH_OOC_CLOCK_MODE != 2)
-# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0100
-#else
-# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
-#endif
-
-#elif defined(CYGARC_SH_MOD_CPG_V3) // ---------------------------- V3
-
-// PLL1
-#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0) || (CYGHWR_HAL_SH_OOC_PLL_1 == 1)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 2)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0010
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 3)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x8000
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 4)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0020
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 6)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x8010
-#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 8)
-# define CYGARC_REG_FRQCR_INIT_PLL1 0x0030
-#else
-# error "Unsupported PLL1 setting"
-#endif
-
-// Divider1
-#if   (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 1)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 2)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0004
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 3)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x4000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 4)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0008
-#else
-# error "Unsupported Divider1 setting"
-#endif
-
-// Divider2
-#if   (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 1)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 2)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0001
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 3)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x2000
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 4)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0002
-#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 6)
-# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x2002
-#else
-# error "Unsupported Divider2 setting"
-#endif
-
-// CKOEN - set in modes 0-2
-#if (CYGHWR_HAL_SH_OOC_CLOCK_MODE <= 2)
-# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0100
-#else
-# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
-#endif
-
-#else
-
-# error "Unsupported CPG version"
-
-#endif
-
-// Init value
-#define CYGARC_REG_FRQCR_INIT (CYGARC_REG_FRQCR_INIT_PLL1|CYGARC_REG_FRQCR_INIT_DIVIDER1|CYGARC_REG_FRQCR_INIT_DIVIDER2|CYGARC_REG_FRQCR_INIT_CKOEN)
-
-//++++++ Module TMU ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// TMU registers
-#define CYGARC_REG_TOCR                 0xfffffe90 //  8 bit
-#define CYGARC_REG_TSTR                 0xfffffe92 //  8 bit
-#define CYGARC_REG_TCOR0                0xfffffe94 // 32 bit
-#define CYGARC_REG_TCNT0                0xfffffe98 // 32 bit
-#define CYGARC_REG_TCR0                 0xfffffe9c // 16 bit
-#define CYGARC_REG_TCOR1                0xfffffea0 // 32 bit
-#define CYGARC_REG_TCNT1                0xfffffea4 // 32 bit
-#define CYGARC_REG_TCR1                 0xfffffea8 // 16 bit
-#define CYGARC_REG_TCOR2                0xfffffeac // 32 bit
-#define CYGARC_REG_TCNT2                0xfffffeb0 // 32 bit
-#define CYGARC_REG_TCR2                 0xfffffeb4 // 16 bit
-#define CYGARC_REG_TCPR2                0xfffffeb8 // 32 bit
-
-// TSTR
-#define CYGARC_REG_TSTR_STR0            0x0001
-#define CYGARC_REG_TSTR_STR1            0x0002
-#define CYGARC_REG_TSTR_STR2            0x0004
-
-// TCR0/1/2
-#define CYGARC_REG_TCR_TPSC0            0x0001
-#define CYGARC_REG_TCR_TPSC1            0x0002
-#define CYGARC_REG_TCR_TPSC2            0x0004
-#define CYGARC_REG_TCR_CKEG0            0x0008
-#define CYGARC_REG_TCR_CKEG1            0x0010
-#define CYGARC_REG_TCR_UNIE             0x0020
-#define CYGARC_REG_TCR_UNF              0x0100
-
-#define CYGARC_REG_TCR_TPSC_4           (0)
-#define CYGARC_REG_TCR_TPSC_16          (CYGARC_REG_TCR_TPSC0)
-#define CYGARC_REG_TCR_TPSC_64          (CYGARC_REG_TCR_TPSC1)
-#define CYGARC_REG_TCR_TPSC_256         (CYGARC_REG_TCR_TPSC0|CYGARC_REG_TCR_TPSC1)
-
-// TCR2 additional bits
-#define CYGARC_REG_TCR_ICPE0            0x0040
-#define CYGARC_REG_TCR_ICPE1            0x0080
-#define CYGARC_REG_TCR_ICPF             0x0200
-
-
-//++++++ Module INTC +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// Interrupt registers
-#define CYGARC_REG_EXCEVT               0xffffffd4
-#define CYGARC_REG_INTEVT               0xffffffd8
-
-#define CYGARC_REG_ICR                  0xfffffee0
-#define CYGARC_REG_IPRA                 0xfffffee2
-#define CYGARC_REG_IPRB                 0xfffffee4
-
-//#ifdef CYGARC_SH_MOD_INTC_V2 // FIXME: HAL_INTERRUPT_SET_LEVEL needs these
-# define CYGARC_REG_INTEVT2             0xa4000000
-# define CYGARC_REG_IRR0                0xa4000004
-# define CYGARC_REG_IRR1                0xa4000006
-# define CYGARC_REG_IRR2                0xa4000008
-# define CYGARC_REG_ICR0                CYGARC_REG_ICR
-# define CYGARC_REG_ICR1                0xa4000010
-# define CYGARC_REG_ICR2                0xa4000012
-# define CYGARC_REG_INTER               0xa4000014
-# define CYGARC_REG_IPRC                0xa4000016
-# define CYGARC_REG_IPRD                0xa4000018
-# define CYGARC_REG_IPRE                0xa400001a
-//#endif
-//#ifdef CYGARC_SH_MOD_INTC_V3 // FIXME: HAL_INTERRUPT_SET_LEVEL needs these
-# define CYGARC_REG_IRR3                0xa400000a
-# define CYGARC_REG_IRR4                0xa400000c
-# define CYGARC_REG_IPRF                0xa400001c
-//#endif
-
-
-#define CYGARC_REG_IPRA_TMU0_MASK       0xf000
-#define CYGARC_REG_IPRA_TMU0_PRI1       0x1000
-#define CYGARC_REG_IPRA_TMU1_MASK       0x0f00
-#define CYGARC_REG_IPRA_TMU1_PRI1       0x0100
-#define CYGARC_REG_IPRA_TMU2_MASK       0x00f0
-#define CYGARC_REG_IPRA_TMU2_PRI1       0x0010
-#define CYGARC_REG_IPRA_RTC_MASK        0x000f
-#define CYGARC_REG_IPRA_RTC_PRI1        0x0001
-
-#define CYGARC_REG_IPRB_WDT_MASK        0xf000
-#define CYGARC_REG_IPRB_WDT_PRI1        0x1000
-#define CYGARC_REG_IPRB_REF_MASK        0x0f00
-#define CYGARC_REG_IPRB_REF_PRI1        0x0100
-#define CYGARC_REG_IPRB_SCI_MASK        0x00f0
-#define CYGARC_REG_IPRB_SCI_PRI1        0x0010
-
-//#ifdef CYGARC_SH_MOD_INTC_V2 // FIXME: HAL_INTERRUPT_SET_LEVEL needs these
-#define CYGARC_REG_IPRC_IRQ3_MASK         0xf000
-#define CYGARC_REG_IPRC_IRQ3_PRI1         0x1000
-#define CYGARC_REG_IPRC_IRQ2_MASK         0x0f00
-#define CYGARC_REG_IPRC_IRQ2_PRI1         0x0100
-#define CYGARC_REG_IPRC_IRQ1_MASK         0x00f0
-#define CYGARC_REG_IPRC_IRQ1_PRI1         0x0010
-#define CYGARC_REG_IPRC_IRQ0_MASK         0x000f
-#define CYGARC_REG_IPRC_IRQ0_PRI1         0x0001
-
-#define CYGARC_REG_IPRD_PINT07_MASK       0xf000
-#define CYGARC_REG_IPRD_PINT07_PRI1       0x1000
-#define CYGARC_REG_IPRD_PINT8F_MASK       0x0f00
-#define CYGARC_REG_IPRD_PINT8F_PRI1       0x0100
-#define CYGARC_REG_IPRD_IRQ5_MASK         0x00f0
-#define CYGARC_REG_IPRD_IRQ5_PRI1         0x0010
-#define CYGARC_REG_IPRD_IRQ4_MASK         0x000f
-#define CYGARC_REG_IPRD_IRQ4_PRI1         0x0001
-
-#define CYGARC_REG_IPRE_DMAC_MASK         0xf000
-#define CYGARC_REG_IPRE_DMAC_PRI1         0x1000
-#define CYGARC_REG_IPRE_IRDA_MASK         0x0f00
-#define CYGARC_REG_IPRE_IRDA_PRI1         0x0100
-#define CYGARC_REG_IPRE_SCIF_MASK         0x00f0
-#define CYGARC_REG_IPRE_SCIF_PRI1         0x0010
-#define CYGARC_REG_IPRE_ADC_MASK          0x000f
-#define CYGARC_REG_IPRE_ADC_PRI1          0x0001
-
-#define CYGARC_REG_ICR1_MAI               0x8000
-#define CYGARC_REG_ICR1_IRQLVL            0x4000
-#define CYGARC_REG_ICR1_BLMSK             0x2000
-#define CYGARC_REG_ICR1_IRLSEN            0x1000
-#define CYGARC_REG_ICR1_SENSE_IRQ5_shift  10
-#define CYGARC_REG_ICR1_SENSE_IRQ4_shift  8
-#define CYGARC_REG_ICR1_SENSE_IRQ3_shift  6
-#define CYGARC_REG_ICR1_SENSE_IRQ2_shift  4
-#define CYGARC_REG_ICR1_SENSE_IRQ1_shift  2
-#define CYGARC_REG_ICR1_SENSE_IRQ0_shift  0
-#define CYGARC_REG_ICR1_SENSE_LEVEL       0x2
-#define CYGARC_REG_ICR1_SENSE_UP          0x1
-
-// The (initial) IRQ mode is controlled by configuration.
-#ifdef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
-# ifdef CYGHWR_HAL_SH_IRQ_ENABLE_IRLS_INTERRUPTS
-#  define CYGARC_REG_ICR1_INIT (CYGARC_REG_ICR1_IRLSEN|CYGARC_REG_ICR1_IRQLVL)
-# else
-#  define CYGARC_REG_ICR1_INIT (CYGARC_REG_ICR1_IRQLVL)
-# endif
-#else
-# define CYGARC_REG_ICR1_INIT 0x0000
-#endif
-
-#define CYGARC_REG_IRR0_PINT07            0x80
-#define CYGARC_REG_IRR0_PINT8F            0x40
-#define CYGARC_REG_IRR0_IRQ5              0x20
-#define CYGARC_REG_IRR0_IRQ4              0x10
-#define CYGARC_REG_IRR0_IRQ3              0x08
-#define CYGARC_REG_IRR0_IRQ2              0x04
-#define CYGARC_REG_IRR0_IRQ1              0x02
-#define CYGARC_REG_IRR0_IRQ0              0x01
-
-//#endif
-
-//#ifdef CYGARC_SH_MOD_INTC_V3 // FIXME: HAL_INTERRUPT_SET_LEVEL needs these
-#define CYGARC_REG_IPRF_LCDI_MASK         0x0f00
-#define CYGARC_REG_IPRF_LCDI_PRI1         0x0100
-#define CYGARC_REG_IPRF_PCC0_MASK         0x00f0
-#define CYGARC_REG_IPRF_PCC0_PRI1         0x0010
-#define CYGARC_REG_IPRF_PCC1_MASK         0x000f
-#define CYGARC_REG_IPRF_PCC1_PRI1         0x0001
-
-//#endif
-
-//++++++ Module RTC ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// RealTime Clock
-
-#define CYGARC_REG_RC64CNT              0xfffffec0
-#define CYGARC_REG_RSECCNT              0xfffffec2
-#define CYGARC_REG_RMINCNT              0xfffffec4
-#define CYGARC_REG_RHRCNT               0xfffffec6
-#define CYGARC_REG_RWKCNT               0xfffffec8
-#define CYGARC_REG_RDAYCNT              0xfffffeca
-#define CYGARC_REG_RMONCNT              0xfffffecc
-#define CYGARC_REG_RYRCNT               0xfffffece
-#define CYGARC_REG_RSECAR               0xfffffed0
-#define CYGARC_REG_RMINAR               0xfffffed2
-#define CYGARC_REG_RHRAR                0xfffffed4
-#define CYGARC_REG_RWKAR                0xfffffed6
-#define CYGARC_REG_RDAYAR               0xfffffed8
-#define CYGARC_REG_RMONAR               0xfffffeda
-#define CYGARC_REG_RCR1                 0xfffffedc
-#define CYGARC_REG_RCR2                 0xfffffede
-
-
-#define CYGARC_REG_RCR1_CF              0x80 // carry flag
-#define CYGARC_REG_RCR1_CIE             0x10 // carry interrupt enable
-#define CYGARC_REG_RCR1_AIE             0x08 // alarm interrupt enable
-#define CYGARC_REG_RCR1_AF              0x01 // alarm flag
-
-#define CYGARC_REG_RCR2_PEF             0x80 // periodic interrupt flag
-#define CYGARC_REG_RCR2_PES2            0x40 // periodic interrupt setting
-#define CYGARC_REG_RCR2_PES1            0x20
-#define CYGARC_REG_RCR2_PES0            0x10
-#define CYGARC_REG_RCR2_RTCEN           0x08 // RTC enable
-#define CYGARC_REG_RCR2_ADJ             0x04 // second adjustment
-#define CYGARC_REG_RCR2_RESET           0x02 // reset
-#define CYGARC_REG_RCR2_START           0x01 // start
-
-
-
-//++++++ Module SCI ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-//--------------------------------------------------------------------------
-// Serial registers. All 8 bit registers.
-#define CYGARC_REG_SCSMR                0xfffffe80 // serial mode register
-#define CYGARC_REG_SCBRR                0xfffffe82 // bit rate register
-#define CYGARC_REG_SCSCR                0xfffffe84 // serial control register
-#define CYGARC_REG_SCTDR                0xfffffe86 // transmit data register
-#define CYGARC_REG_SCSSR                0xfffffe88 // serial status register
-#define CYGARC_REG_SCRDR                0xfffffe8a // receive data register
-
-#ifdef CYGARC_SH_MOD_SCI_V2
-# define CYGARC_REG_SCSPTR               0xfffffe7c // serial port register
-#endif
-
-// Serial Mode Register
-#define CYGARC_REG_SCSMR_CA             0x80 // communication mode
-#define CYGARC_REG_SCSMR_CHR            0x40 // character length (7 if set)
-#define CYGARC_REG_SCSMR_PE             0x20 // parity enable
-#define CYGARC_REG_SCSMR_OE             0x10 // parity mode
-#define CYGARC_REG_SCSMR_STOP           0x08 // stop bit length
-#define CYGARC_REG_SCSMR_MP             0x04 // multiprocessor mode
-#define CYGARC_REG_SCSMR_CKS1           0x02 // clock select 1
-#define CYGARC_REG_SCSMR_CKS0           0x01 // clock select 0
-#define CYGARC_REG_SCSMR_CKSx_MASK      0x03 // mask
-
-// Serial Control Register
-#define CYGARC_REG_SCSCR_TIE            0x80 // transmit interrupt enable
-#define CYGARC_REG_SCSCR_RIE            0x40 // receive interrupt enable
-#define CYGARC_REG_SCSCR_TE             0x20 // transmit enable
-#define CYGARC_REG_SCSCR_RE             0x10 // receive enable
-#define CYGARC_REG_SCSCR_MPIE           0x08 // multiprocessor interrupt enable
-#define CYGARC_REG_SCSCR_TEIE           0x04 // transmit-end interrupt enable
-#define CYGARC_REG_SCSCR_CKE1           0x02 // clock enable 1
-#define CYGARC_REG_SCSCR_CKE0           0x01 // clock enable 0
-
-// Serial Status Register
-#define CYGARC_REG_SCSSR_TDRE           0x80 // transmit data register empty
-#define CYGARC_REG_SCSSR_RDRF           0x40 // receive data register full
-#define CYGARC_REG_SCSSR_ORER           0x20 // overrun error
-#define CYGARC_REG_SCSSR_FER            0x10 // framing error
-#define CYGARC_REG_SCSSR_PER            0x08 // parity error
-#define CYGARC_REG_SCSSR_TEND           0x04 // transmit end
-#define CYGARC_REG_SCSSR_MPB            0x02 // multiprocessor bit
-#define CYGARC_REG_SCSSR_MPBT           0x01 // multiprocessor bit transfer
-
-// When clearing the status register, always write the value:
-// CYGARC_REG_SCSSR_CLEARMASK & ~bit
-// to prevent other bits than the one of interest to be cleared.
-#define CYGARC_REG_SCSSR_CLEARMASK      0xf8
-
-// Baud rate values calculation, depending on peripheral clock (Pf)
-// n is CKS setting (0-3)
-// N = (Pf/(64*2^(2n-1)*B))-1
-// With CYGARC_SCBRR_CKSx providing the values 1, 4, 16, 64 we get
-//       N = (Pf/(32*_CKS*B))-1
-//
-// The CYGARC_SCBRR_OPTIMAL_CKS macro should compute the minimal CKS
-// setting for the given baud rate and peripheral clock.
-//
-// The error of the CKS+count value can be computed by:
-//  E(%) = ((Pf/((N+1)*B*(64^(n-1)))-1)*100 
-//
-#define CYGARC_SCBRR_PRESCALE(_b_) \
-((((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/1/(_b_))-1)<256) ? 1 : \
- (((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/4/(_b_))-1)<256) ? 4 : \
- (((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/16/(_b_))-1)<256) ? 16 : 64)
-
-// These two macros provide the static values we need to stuff into the
-// registers.
-#define CYGARC_SCBRR_CKSx(_b_) \
-    ((1 == CYGARC_SCBRR_PRESCALE(_b_)) ? 0 : \
-     (4 == CYGARC_SCBRR_PRESCALE(_b_)) ? 1 : \
-     (16 == CYGARC_SCBRR_PRESCALE(_b_)) ? 2 : 3)
-#define CYGARC_SCBRR_N(_b_)     \
-    (((_b_) < 4800) ? 0 :       \
-      ((_b_) > 115200) ? 0 :    \
-       ((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/CYGARC_SCBRR_PRESCALE(_b_)/(_b_))-1))
-
-//++++++ Module IRDA +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#ifdef CYGARC_SH_MOD_IRDA
-
-//--------------------------------------------------------------------------
-// IrDA (infrared data association). Can also act as regular serial w FIFO
-
-#define CYGARC_REG_SCSMR1               0xa4000140
-#define CYGARC_REG_SCBRR1               0xa4000142
-#define CYGARC_REG_SCSCR1               0xa4000144
-#define CYGARC_REG_SCFTDR1              0xa4000146
-#define CYGARC_REG_SCSSR1               0xa4000148
-#define CYGARC_REG_SCFRDR1              0xa400014a
-#define CYGARC_REG_SCFCR1               0xa400014c
-#define CYGARC_REG_SCFDR1               0xa400014e
-
-// Serial Mode Register
-#define CYGARC_REG_SCSMR1_IRMOD          0x80 // IrDA Mode
-#define CYGARC_REG_SCSMR1_ICK_MASK       0x78 // IR pulse width
-#define CYGARC_REG_SCSMR1_PSEL           0x04 // IR pulse selector(?)
-#define CYGARC_REG_SCSMR1_CKS1           0x02 // clock select 1
-#define CYGARC_REG_SCSMR1_CKS0           0x01 // clock select 0
-#define CYGARC_REG_SCSMR1_CKSx_MASK      0x03 // mask
-
-// Serial Control Register
-#define CYGARC_REG_SCSCR1_TIE            0x80 // transmit interrupt enable
-#define CYGARC_REG_SCSCR1_RIE            0x40 // receive interrupt enable
-#define CYGARC_REG_SCSCR1_TE             0x20 // transmit enable
-#define CYGARC_REG_SCSCR1_RE             0x10 // receive enable
-#define CYGARC_REG_SCSCR1_CKE1           0x02 // clock enable 1
-#define CYGARC_REG_SCSCR1_CKE0           0x01 // clock enable 0
-
-// Serial Status Register
-#define CYGARC_REG_SCSSR1_PER_MASK       0xf000 // number of parity errors
-#define CYGARC_REG_SCSSR1_PER_shift      12
-#define CYGARC_REG_SCSSR1_FER_MASK       0x0f00 // number of framing errors
-#define CYGARC_REG_SCSSR1_FER_shift      8
-#define CYGARC_REG_SCSSR1_ER             0x0080 // receive error
-#define CYGARC_REG_SCSSR1_TEND           0x0040 // transmit end
-#define CYGARC_REG_SCSSR1_TDFE           0x0020 // transmit fifo data empty
-#define CYGARC_REG_SCSSR1_BRK            0x0010 // break detection
-#define CYGARC_REG_SCSSR1_FER            0x0008 // framing error
-#define CYGARC_REG_SCSSR1_PER            0x0004 // parity error
-#define CYGARC_REG_SCSSR1_RDF            0x0002 // receive fifo data full
-#define CYGARC_REG_SCSSR1_DR             0x0001 // receive data ready
-
-// When clearing the status register, always write the value:
-// CYGARC_REG_SCSSR2_CLEARMASK & ~bit
-// to prevent other bits than the one of interest to be cleared.
-#define CYGARC_REG_SCSSR1_CLEARMASK      0xf3
-
-// Serial FIFO Control Register
-#define CYGARC_REG_SCFCR1_RTRG_MASK      0xc0   // receive fifo data trigger
-#define CYGARC_REG_SCFCR1_RTRG_1         0x00   // trigger on 1 char 
-#define CYGARC_REG_SCFCR1_RTRG_4         0x40   // trigger on 4 chars
-#define CYGARC_REG_SCFCR1_RTRG_8         0x80   // trigger on 8 chars
-#define CYGARC_REG_SCFCR1_RTRG_14        0xc0   // trigger on 14 chars 
-
-#define CYGARC_REG_SCFCR1_TTRG_MASK      0x30   // transmit fifo data trigger
-#define CYGARC_REG_SCFCR1_TTRG_8         0x00   // trigger on 8 chars 
-#define CYGARC_REG_SCFCR1_TTRG_4         0x10   // trigger on 4 chars
-#define CYGARC_REG_SCFCR1_TTRG_2         0x20   // trigger on 2 chars
-#define CYGARC_REG_SCFCR1_TTRG_1         0x30   // trigger on 1 char
-
-#define CYGARC_REG_SCFCR1_MCE            0x08   // modem control enable
-#define CYGARC_REG_SCFCR1_TFRST          0x04   // transmit fifo reset
-#define CYGARC_REG_SCFCR1_RFRST          0x02   // receive fifo reset
-#define CYGARC_REG_SCFCR1_LOOP           0x01   // loop back test
-
-
-// Serial FIFO Data Count Set Register
-#define CYGARC_REG_SCFDR1_RCOUNT_MASK    0x001f // number of chars in r fifo
-#define CYGARC_REG_SCFDR1_RCOUNT_shift   0
-#define CYGARC_REG_SCFDR1_TCOUNT_MASK    0x1f00 // number of chars in t fifo
-#define CYGARC_REG_SCFDR1_TCOUNT_shift   8
-
-#endif // CYGARC_SH_MOD_IRDA
-
-//++++++ Module SCIF +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#ifdef CYGARC_SH_MOD_SCIF
-
-//--------------------------------------------------------------------------
-// Serial w FIFO registers
-
-#define CYGARC_REG_SCSMR2               0xa4000150 // Serial mode
-#define CYGARC_REG_SCBRR2               0xa4000152 // Bit rate
-#define CYGARC_REG_SCSCR2               0xa4000154 // Serial control
-#define CYGARC_REG_SCFTDR2              0xa4000156 // Transmit FIFO data
-#define CYGARC_REG_SCSSR2               0xa4000158 // Serial status
-#define CYGARC_REG_SCFRDR2              0xa400015a // Receive data FIFO
-#define CYGARC_REG_SCFCR2               0xa400015c // FIFO control register
-#define CYGARC_REG_SCFDR2               0xa400015e // FIFO data count set
-
-// Serial Mode Register
-#define CYGARC_REG_SCSMR2_CHR            0x40 // character length (7 if set)
-#define CYGARC_REG_SCSMR2_PE             0x20 // parity enable
-#define CYGARC_REG_SCSMR2_OE             0x10 // parity mode
-#define CYGARC_REG_SCSMR2_STOP           0x08 // stop bit length
-#define CYGARC_REG_SCSMR2_CKS1           0x02 // clock select 1
-#define CYGARC_REG_SCSMR2_CKS0           0x01 // clock select 0
-#define CYGARC_REG_SCSMR2_CKSx_MASK      0x03 // mask
-
-// Serial Control Register
-#define CYGARC_REG_SCSCR2_TIE            0x80 // transmit interrupt enable
-#define CYGARC_REG_SCSCR2_RIE            0x40 // receive interrupt enable
-#define CYGARC_REG_SCSCR2_TE             0x20 // transmit enable
-#define CYGARC_REG_SCSCR2_RE             0x10 // receive enable
-#define CYGARC_REG_SCSCR2_CKE1           0x02 // clock enable 1
-#define CYGARC_REG_SCSCR2_CKE0           0x01 // clock enable 0
-
-// Serial Status Register
-#define CYGARC_REG_SCSSR2_PER_MASK       0xf000 // number of parity errors
-#define CYGARC_REG_SCSSR2_PER_shift      12
-#define CYGARC_REG_SCSSR2_FER_MASK       0x0f00 // number of framing errors
-#define CYGARC_REG_SCSSR2_FER_shift      8
-#define CYGARC_REG_SCSSR2_ER             0x0080 // receive error
-#define CYGARC_REG_SCSSR2_TEND           0x0040 // transmit end
-#define CYGARC_REG_SCSSR2_TDFE           0x0020 // transmit fifo data empty
-#define CYGARC_REG_SCSSR2_BRK            0x0010 // break detection
-#define CYGARC_REG_SCSSR2_FER            0x0008 // framing error
-#define CYGARC_REG_SCSSR2_PER            0x0004 // parity error
-#define CYGARC_REG_SCSSR2_RDF            0x0002 // receive fifo data full
-#define CYGARC_REG_SCSSR2_DR             0x0001 // receive data ready
-
-// When clearing the status register, always write the value:
-// CYGARC_REG_SCSSR2_CLEARMASK & ~bit
-// to prevent other bits than the one of interest to be cleared.
-#define CYGARC_REG_SCSSR2_CLEARMASK      0xf3
-
-// Serial FIFO Control Register
-#define CYGARC_REG_SCFCR2_RTRG_MASK      0xc0   // receive fifo data trigger
-#define CYGARC_REG_SCFCR2_RTRG_1         0x00   // trigger on 1 char 
-#define CYGARC_REG_SCFCR2_RTRG_4         0x40   // trigger on 4 chars
-#define CYGARC_REG_SCFCR2_RTRG_8         0x80   // trigger on 8 chars
-#define CYGARC_REG_SCFCR2_RTRG_14        0xc0   // trigger on 14 chars 
-
-#define CYGARC_REG_SCFCR2_TTRG_MASK      0x30   // transmit fifo data trigger
-#define CYGARC_REG_SCFCR2_TTRG_8         0x00   // trigger on 8 chars 
-#define CYGARC_REG_SCFCR2_TTRG_4         0x10   // trigger on 4 chars
-#define CYGARC_REG_SCFCR2_TTRG_2         0x20   // trigger on 2 chars
-#define CYGARC_REG_SCFCR2_TTRG_1         0x30   // trigger on 1 char
-
-#define CYGARC_REG_SCFCR2_MCE            0x08   // modem control enable
-#define CYGARC_REG_SCFCR2_TFRST          0x04   // transmit fifo reset
-#define CYGARC_REG_SCFCR2_RFRST          0x02   // receive fifo reset
-#define CYGARC_REG_SCFCR2_LOOP           0x01   // loop back test
-
-
-// Serial FIFO Data Count Set Register
-#define CYGARC_REG_SCFDR2_RCOUNT_MASK    0x001f // number of chars in r fifo
-#define CYGARC_REG_SCFDR2_RCOUNT_shift   0
-#define CYGARC_REG_SCFDR2_TCOUNT_MASK    0x1f00 // number of chars in t fifo
-#define CYGARC_REG_SCFDR2_TCOUNT_shift   8
-
-#endif // CYGARC_SH_MOD_SCIF
-
-//++++++ Module DMAC +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#ifdef CYGARC_SH_MOD_DMAC
-
-//--------------------------------------------------------------------------
-// DMA Controller registers
-
-#define CYGARC_REG_SAR0                 0xa4000020
-#define CYGARC_REG_DAR0                 0xa4000024
-#define CYGARC_REG_DMATCR0              0xa4000028
-#define CYGARC_REG_CHCR0                0xa400002c
-#define CYGARC_REG_SAR1                 0xa4000030
-#define CYGARC_REG_DAR1                 0xa4000034
-#define CYGARC_REG_DMATCR1              0xa4000038
-#define CYGARC_REG_CHCR1                0xa400003c
-#define CYGARC_REG_SAR2                 0xa4000040
-#define CYGARC_REG_DAR2                 0xa4000044
-#define CYGARC_REG_DMATCR2              0xa4000048
-#define CYGARC_REG_CHCR2                0xa400004c
-#define CYGARC_REG_SAR3                 0xa4000050
-#define CYGARC_REG_DAR3                 0xa4000054
-#define CYGARC_REG_DMATCR3              0xa4000058
-#define CYGARC_REG_CHCR3                0xa400005c
-#define CYGARC_REG_DMAOR                0xa4000060
-
-// Offsets from base register
-#define CYGARC_REG_SAR                  0x00
-#define CYGARC_REG_DAR                  0x04
-#define CYGARC_REG_DMATCR               0x08
-#define CYGARC_REG_CHCR                 0x0c
-
-
-// DMA Channel Control Register. If there's a digit suffix to CHCR the flag
-// is only valid in the listed channels.
-#define CYGARC_REG_CHCR3_DI             0x00100000 // direct/indirect selection
-#define CYGARC_REG_CHCR2_RO             0x00080000 // source address reload
-#define CYGARC_REG_CHCR01_RL            0x00040000 // request check level
-#define CYGARC_REG_CHCR01_AM            0x00020000 // acknowledge mode
-#define CYGARC_REG_CHCR01_AL            0x00010000 // acknowledge level
-#define CYGARC_REG_CHCR_DM1             0x00008000 // destination address mode
-#define CYGARC_REG_CHCR_DM0             0x00004000
-#define CYGARC_REG_CHCR_SM1             0x00002000 // source address mode
-#define CYGARC_REG_CHCR_SM0             0x00001000
-#define CYGARC_REG_CHCR_RS3             0x00000800 // resource select
-#define CYGARC_REG_CHCR_RS2             0x00000400
-#define CYGARC_REG_CHCR_RS1             0x00000200
-#define CYGARC_REG_CHCR_RS0             0x00000100
-#define CYGARC_REG_CHCR01_DS            0x00000040 // DREQ select
-#define CYGARC_REG_CHCR_TM              0x00000020 // transmit mode
-#define CYGARC_REG_CHCR_TS1             0x00000010 // transmit size
-#define CYGARC_REG_CHCR_TS0             0x00000008
-#define CYGARC_REG_CHCR_IE              0x00000004 // interrupt enable
-#define CYGARC_REG_CHCR_TE              0x00000002 // transfer end
-#define CYGARC_REG_CHCR_DE              0x00000001 // DMAC enable
-
-// Resource select options
-#define CYGARC_REG_CHCR_RS_EXT_DUAL     0x00000000
-#define CYGARC_REG_CHCR_RS_EXT_EX_DAC   0x00000100
-#define CYGARC_REG_CHCR_RS_EXT_DAC_EX   0x00000300
-#define CYGARC_REG_CHCR_RS_AUTO         0x00000400
-#define CYGARC_REG_CHCR_RS_IRDA_TX      0x00000a00
-#define CYGARC_REG_CHCR_RS_IRDA_RX      0x00000b00
-#define CYGARC_REG_CHCR_RS_SCIF_TX      0x00000c00
-#define CYGARC_REG_CHCR_RS_SCIF_RX      0x00000d00
-#define CYGARC_REG_CHCR_RS_AD           0x00000e00
-#define CYGARC_REG_CHCR_RS_CMT          0x00000f00
-
-
-// DMA Operation Register
-#define CYGARC_REG_DMAOR_PR1            0x0200     // priority level
-#define CYGARC_REG_DMAOR_PR0            0x0100
-#define CYGARC_REG_DMAOR_AE             0x0004     // address error flag
-#define CYGARC_REG_DMAOR_NMIF           0x0002     // NMI flag
-#define CYGARC_REG_DMAOR_DME            0x0001     // DMA master enable
-
-
-#endif // CYGARC_SH_MOD_DMAC
-
-//++++++ Module PFC +++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#ifdef CYGARC_SH_MOD_PFC
-
-#define CYGARC_REG_PACR                 0xa4000100 // port A control
-#define CYGARC_REG_PBCR                 0xa4000102 // port B control
-#define CYGARC_REG_PCCR                 0xa4000104 // port C control
-#define CYGARC_REG_PDCR                 0xa4000106 // port D control
-#define CYGARC_REG_PECR                 0xa4000108 // port E control
-#define CYGARC_REG_PFCR                 0xa400010a // port F control
-#define CYGARC_REG_PGCR                 0xa400010c // port G control
-#define CYGARC_REG_PHCR                 0xa400010e // port H control
-#define CYGARC_REG_PJCR                 0xa4000110 // port J control
-#define CYGARC_REG_PKCR                 0xa4000112 // port K control
-#define CYGARC_REG_PLCR                 0xa4000114 // port L control
-#define CYGARC_REG_SCPCR                0xa4000116 // SC port control
-
-#define CYGARC_REG_PADR                 0xa4000120 // port A data
-#define CYGARC_REG_PBDR                 0xa4000122 // port B data
-#define CYGARC_REG_PCDR                 0xa4000124 // port C data
-#define CYGARC_REG_PDDR                 0xa4000126 // port D data
-#define CYGARC_REG_PEDR                 0xa4000128 // port E data
-#define CYGARC_REG_PFDR                 0xa400012a // port F data
-#define CYGARC_REG_PGDR                 0xa400012c // port G data
-#define CYGARC_REG_PHDR                 0xa400012e // port H data
-#define CYGARC_REG_PJDR                 0xa4000130 // port J data
-#define CYGARC_REG_PKDR                 0xa4000132 // port K data
-#define CYGARC_REG_PLDR                 0xa4000134 // port L data
-#define CYGARC_REG_SCPDR                0xa4000136 // SC port data
-
-
-// Port C
-#define CYGARC_REG_PCCR_PC7_MASK        0xc000
-#define CYGARC_REG_PCCR_PC7_shift       14
-#define CYGARC_REG_PCCR_PC6_MASK        0x3000
-#define CYGARC_REG_PCCR_PC6_shift       12
-#define CYGARC_REG_PCCR_PC5_MASK        0x0c00
-#define CYGARC_REG_PCCR_PC5_shift       10
-#define CYGARC_REG_PCCR_PC4_MASK        0x0300
-#define CYGARC_REG_PCCR_PC4_shift       8
-#define CYGARC_REG_PCCR_PC3_MASK        0x00c0
-#define CYGARC_REG_PCCR_PC3_shift       6
-#define CYGARC_REG_PCCR_PC2_MASK        0x0030
-#define CYGARC_REG_PCCR_PC2_shift       4
-#define CYGARC_REG_PCCR_PC1_MASK        0x000c
-#define CYGARC_REG_PCCR_PC1_shift       2
-#define CYGARC_REG_PCCR_PC0_MASK        0x0003
-#define CYGARC_REG_PCCR_PC0_shift       0
-
-#define CYGARC_REG_PCCR_MD_OTHER        0x0
-#define CYGARC_REG_PCCR_MD_OUT          0x1
-#define CYGARC_REG_PCCR_MD_IN_ON        0x2
-#define CYGARC_REG_PCCR_MD_IN_OFF       0x3
-
-#define CYGARC_REG_PCDR_PC7DT           0x80
-#define CYGARC_REG_PCDR_PC6DT           0x40
-#define CYGARC_REG_PCDR_PC5DT           0x20
-#define CYGARC_REG_PCDR_PC4DT           0x10
-#define CYGARC_REG_PCDR_PC3DT           0x08
-#define CYGARC_REG_PCDR_PC2DT           0x04
-#define CYGARC_REG_PCDR_PC1DT           0x02
-#define CYGARC_REG_PCDR_PC0DT           0x01
-
-
-#endif // CYGARC_SH_MOD_PFC
+#include <cyg/hal/var_regs.h>
 
 #endif // ifndef CYGONCE_HAL_SH_REGS_H
--- a/packages/hal/sh/arch/current/src/hal_misc.c
+++ b/packages/hal/sh/arch/current/src/hal_misc.c
@@ -53,6 +53,8 @@
 #include <cyg/hal/hal_cache.h>          // HAL cache
 #include <cyg/hal/hal_intr.h>           // HAL interrupts/exceptions
 
+#include <cyg/hal/sh_regs.h>            // timer registers
+
 //---------------------------------------------------------------------------
 // Functions used during initialization.
 
@@ -193,43 +195,6 @@ hal_idle_thread_action( cyg_uint32 count
 }
 
 //---------------------------------------------------------------------------
-// Initial cache enabling
-
-#ifdef CYGHWR_HAL_SH_CACHE_MODE_P0_WRITE_BACK
-# define CACHE_MODE_P0 0
-#else
-# define CACHE_MODE_P0 CYGARC_REG_CCR_WT
-#endif
-
-#ifdef CYGHWR_HAL_SH_CACHE_MODE_P1_WRITE_BACK
-# define CACHE_MODE_P1 CYGARC_REG_CCR_CB
-#else
-# define CACHE_MODE_P1 0
-#endif
-
-externC void
-cyg_hal_enable_caches(void)
-{
-    // Initialize cache.
-    HAL_UCACHE_INVALIDATE_ALL();    
-
-    // Set cache modes
-    HAL_UCACHE_WRITE_MODE_SH(CACHE_MODE_P0|CACHE_MODE_P1);
-
-#ifdef CYGHWR_HAL_SH_CACHE_ENABLE
-    // Enable cache.
-    HAL_UCACHE_ENABLE();
-#endif
-}
-
-//---------------------------------------------------------------------------
-// SH3 variant stuff
-// This should be split out...
-void
-hal_variant_init(void)
-{
-}
-
 // Low-level delay (in microseconds)
 
 void
@@ -259,342 +224,4 @@ hal_delay_us(int usecs)
 }
 
 //---------------------------------------------------------------------------
-// Interrupt function support
-
-#ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
-externC cyg_uint8 cyg_hal_ILVL_table[];
-#define HAL_UPDATE_ILVL_TABLE(_vector_, _level_)                         \
-    /* Update the ILVL table, so it is easy for the interrupt entry */   \
-    /* code to find out the level of a given interrupt source.      */   \
-    cyg_hal_ILVL_table[(_vector_)] = (_level_)
-#else
-#define HAL_UPDATE_ILVL_TABLE(_vector_, _level_)
-#endif
-
-void
-hal_interrupt_set_level(int vector, int level)
-{
-    cyg_uint16 iprX;                                                     
-                                                                         
-    CYG_ASSERT((0 <= (level) && 15 >= (level)), "Illegal level");    
-    CYG_ASSERT((CYGNUM_HAL_ISR_MIN <= (vector)                         
-                && CYGNUM_HAL_ISR_MAX >= (vector)), "Illegal vector"); 
-                                                                         
-    HAL_UPDATE_ILVL_TABLE(vector, level);                            
-                                                                         
-    switch( (vector) ) {                                               
-    case CYGNUM_HAL_INTERRUPT_NMI:                                       
-        /* fall through */                                               
-    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:         
-        /* Cannot change levels */                                       
-        break;                                                           
-                                                                         
-        /* IPRA */                                                           
-    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0:                                
-        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
-        iprX &= ~CYGARC_REG_IPRA_TMU0_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRA_TMU0_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_TMU1_TUNI1:                                
-        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
-        iprX &= ~CYGARC_REG_IPRA_TMU1_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRA_TMU1_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_TMU2_TUNI2:                                
-    case CYGNUM_HAL_INTERRUPT_TMU2_TICPI2:                               
-        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
-        iprX &= ~CYGARC_REG_IPRA_TMU2_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRA_TMU2_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_RTC_ATI:                                   
-    case CYGNUM_HAL_INTERRUPT_RTC_PRI:                                   
-    case CYGNUM_HAL_INTERRUPT_RTC_CUI:                                   
-        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
-        iprX &= ~CYGARC_REG_IPRA_RTC_MASK;                               
-        iprX |= (level)*CYGARC_REG_IPRA_RTC_PRI1;                      
-        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
-        break;                                                           
-                                                                         
-        /* IPRB */                                                           
-    case CYGNUM_HAL_INTERRUPT_SCI_ERI:                                   
-    case CYGNUM_HAL_INTERRUPT_SCI_RXI:                                   
-    case CYGNUM_HAL_INTERRUPT_SCI_TXI:                                   
-    case CYGNUM_HAL_INTERRUPT_SCI_TEI:                                   
-        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);                          
-        iprX &= ~CYGARC_REG_IPRB_SCI_MASK;                               
-        iprX |= (level)*CYGARC_REG_IPRB_SCI_PRI1;                      
-        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_WDT_ITI:                                   
-        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);                          
-        iprX &= ~CYGARC_REG_IPRB_WDT_MASK;                               
-        iprX |= (level)*CYGARC_REG_IPRB_WDT_PRI1;                      
-        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_REF_RCMI:                                  
-    case CYGNUM_HAL_INTERRUPT_REF_ROVI:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);                          
-        iprX &= ~CYGARC_REG_IPRB_REF_MASK;                               
-        iprX |= (level)*CYGARC_REG_IPRB_REF_PRI1;                      
-        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);                         
-        break;                                                           
-                                                                         
-#ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
-        /* IPRC */                                                           
-    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
-        iprX &= ~CYGARC_REG_IPRC_IRQ0_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRC_IRQ0_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
-        iprX &= ~CYGARC_REG_IPRC_IRQ1_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRC_IRQ1_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
-        iprX &= ~CYGARC_REG_IPRC_IRQ2_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRC_IRQ2_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
-        iprX &= ~CYGARC_REG_IPRC_IRQ3_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRC_IRQ3_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
-        break;                                                           
-#endif
-        /* IPRD */                                                           
-    case CYGNUM_HAL_INTERRUPT_PINT_PINT07:                               
-        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
-        iprX &= ~CYGARC_REG_IPRD_PINT07_MASK;                            
-        iprX |= (level)*CYGARC_REG_IPRD_PINT07_PRI1;                   
-        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_PINT_PINT8F:                               
-        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
-        iprX &= ~CYGARC_REG_IPRD_PINT8F_MASK;                            
-        iprX |= (level)*CYGARC_REG_IPRD_PINT8F_PRI1;                   
-        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
-        iprX &= ~CYGARC_REG_IPRD_IRQ5_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRD_IRQ5_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
-        iprX &= ~CYGARC_REG_IPRD_IRQ4_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRD_IRQ4_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
-        break;                                                           
-                                                                         
-        /* IPRE */                                                           
-    case CYGNUM_HAL_INTERRUPT_DMAC_DEI0:                                 
-    case CYGNUM_HAL_INTERRUPT_DMAC_DEI1:                                 
-    case CYGNUM_HAL_INTERRUPT_DMAC_DEI2:                                 
-    case CYGNUM_HAL_INTERRUPT_DMAC_DEI3:                                 
-        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
-        iprX &= ~CYGARC_REG_IPRE_DMAC_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRE_DMAC_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_IRDA_ERI1:                                 
-    case CYGNUM_HAL_INTERRUPT_IRDA_RXI1:                                 
-    case CYGNUM_HAL_INTERRUPT_IRDA_BRI1:                                 
-    case CYGNUM_HAL_INTERRUPT_IRDA_TXI1:                                 
-        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
-        iprX &= ~CYGARC_REG_IPRE_IRDA_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRE_IRDA_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_SCIF_ERI2:                                 
-    case CYGNUM_HAL_INTERRUPT_SCIF_RXI2:                                 
-    case CYGNUM_HAL_INTERRUPT_SCIF_BRI2:                                 
-    case CYGNUM_HAL_INTERRUPT_SCIF_TXI2:                                 
-        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
-        iprX &= ~CYGARC_REG_IPRE_SCIF_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRE_SCIF_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_ADC_ADI:                                   
-        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
-        iprX &= ~CYGARC_REG_IPRE_ADC_MASK;                               
-        iprX |= (level)*CYGARC_REG_IPRE_ADC_PRI1;                      
-        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
-        break;                                                           
-                                                                         
-        /* IPRF */                                                           
-    case CYGNUM_HAL_INTERRUPT_LCDC_LCDI:                                 
-        HAL_READ_UINT16(CYGARC_REG_IPRF, iprX);                          
-        iprX &= ~CYGARC_REG_IPRF_LCDI_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRF_LCDI_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRF, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_PCC_PCC0:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRF, iprX);                          
-        iprX &= ~CYGARC_REG_IPRF_PCC0_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRF_PCC0_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRF, iprX);                         
-        break;                                                           
-    case CYGNUM_HAL_INTERRUPT_PCC_PCC1:                                  
-        HAL_READ_UINT16(CYGARC_REG_IPRF, iprX);                          
-        iprX &= ~CYGARC_REG_IPRF_PCC1_MASK;                              
-        iprX |= (level)*CYGARC_REG_IPRF_PCC1_PRI1;                     
-        HAL_WRITE_UINT16(CYGARC_REG_IPRF, iprX);                         
-        break;                                                           
-                                                                         
-    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:                              
-    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:                              
-        /* Do nothing for these reserved vectors. */                     
-        break;                                                           
-
-    default:
-        CYG_FAIL("Unknown interrupt vector");                             
-        break;
-    }                                                                    
-}
-
-void
-hal_interrupt_mask(int vector)                                    
-{
-    switch( (vector) ) {                                                
-    case CYGNUM_HAL_INTERRUPT_NMI:                                        
-        /* fall through */                                                
-    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:          
-        /* Can only be masked by fiddling Imask in SR. */                 
-        break;                                                            
-    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0...CYGNUM_HAL_ISR_MAX:            
-        HAL_INTERRUPT_SET_LEVEL((vector), 0);                           
-        break;                                                            
-    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:                               
-    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:                               
-        /* Do nothing for these reserved vectors. */                      
-        break;                                                            
-    default:                                                              
-        CYG_FAIL("Unknown interrupt vector");                             
-        break;                                                            
-    }                                                                     
-}
-
-void
-hal_interrupt_unmask(int vector)                                  
-{
-    switch( (vector) ) {                                                
-    case CYGNUM_HAL_INTERRUPT_NMI:                                        
-        /* fall through */                                                
-    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:          
-        /* Can only be unmasked by fiddling Imask in SR. */               
-        break;                                                            
-    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0...CYGNUM_HAL_ISR_MAX:            
-        HAL_INTERRUPT_SET_LEVEL((vector), 1);                           
-        break;                                                            
-    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:                               
-    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:                               
-        /* Do nothing for these reserved vectors. */                      
-        break;                                                            
-    default:                                                              
-        CYG_FAIL("Unknown interrupt vector");                             
-        break;                                                            
-    }                                                                     
-}
-
-void
-hal_interrupt_acknowledge(int vector)
-{
-    if ( (vector) >= CYGNUM_HAL_INTERRUPT_IRQ_IRQ0                      
-         && (vector) <= CYGNUM_HAL_INTERRUPT_IRQ_IRQ5) {                
-                                                                          
-        cyg_uint8 irr0;                                                   
-                                                                          
-        HAL_READ_UINT8(CYGARC_REG_IRR0, irr0);                            
-        switch ( vector ) {                                             
-#ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:                               
-            irr0 &= ~CYGARC_REG_IRR0_IRQ0;                                
-            break;                                                        
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:                               
-            irr0 &= ~CYGARC_REG_IRR0_IRQ1;                                
-            break;                                                        
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:                               
-            irr0 &= ~CYGARC_REG_IRR0_IRQ2;                                
-            break;                                                        
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:                               
-            irr0 &= ~CYGARC_REG_IRR0_IRQ3;                                
-            break;                                                        
-#endif
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:                               
-            irr0 &= ~CYGARC_REG_IRR0_IRQ4;                                
-            break;                                                        
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:                               
-            irr0 &= ~CYGARC_REG_IRR0_IRQ5;                                
-            break;                                                        
-        default:
-            CYG_FAIL("Unhandled interrupt vector");
-        }                                                                 
-        HAL_WRITE_UINT8(CYGARC_REG_IRR0, irr0);                           
-    }                                                                     
-}
-
-// Note: The PINTs can be masked and configured individually, even
-// though there are only two vectors. Maybe add some fake vectors just
-// for masking/configuring?
-void 
-hal_interrupt_configure(int vector, int level, int up)
-{
-    if ( (vector) >= CYGNUM_HAL_INTERRUPT_IRQ_IRQ0                     
-         && (vector) <= CYGNUM_HAL_INTERRUPT_IRQ_IRQ5) {               
-                                                                         
-        cyg_uint16 icr1, ss, mask;                                       
-        ss = 0;                                                          
-        mask = CYGARC_REG_ICR1_SENSE_UP|CYGARC_REG_ICR1_SENSE_LEVEL;     
-        if (up) ss |= CYGARC_REG_ICR1_SENSE_UP;                        
-        if (level) ss |= CYGARC_REG_ICR1_SENSE_LEVEL;                  
-        CYG_ASSERT(!(up && level), "Cannot trigger on high level!"); 
-                                                                         
-        switch( (vector) ) {                                           
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:                              
-            ss <<= CYGARC_REG_ICR1_SENSE_IRQ5_shift;                     
-            mask <<= CYGARC_REG_ICR1_SENSE_IRQ5_shift;                   
-            break;                                                       
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:                              
-            ss <<= CYGARC_REG_ICR1_SENSE_IRQ4_shift;                     
-            mask <<= CYGARC_REG_ICR1_SENSE_IRQ4_shift;                   
-            break;                                                       
-#ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:                              
-            ss <<= CYGARC_REG_ICR1_SENSE_IRQ3_shift;                     
-            mask <<= CYGARC_REG_ICR1_SENSE_IRQ3_shift;                   
-            break;                                                       
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:                              
-            ss <<= CYGARC_REG_ICR1_SENSE_IRQ2_shift;                     
-            mask <<= CYGARC_REG_ICR1_SENSE_IRQ2_shift;                   
-            break;                                                       
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:                              
-            ss <<= CYGARC_REG_ICR1_SENSE_IRQ1_shift;                     
-            mask <<= CYGARC_REG_ICR1_SENSE_IRQ1_shift;                   
-            break;                                                       
-        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:                              
-            ss <<= CYGARC_REG_ICR1_SENSE_IRQ0_shift;                     
-            mask <<= CYGARC_REG_ICR1_SENSE_IRQ0_shift;                   
-            break;                                                       
-#endif
-        default:
-            CYG_FAIL("Unhandled interrupt vector");
-        }
-                                                                         
-        HAL_READ_UINT16(CYGARC_REG_ICR1, icr1);                          
-        icr1 &= ~mask;                                                   
-        icr1 |= ss;                                                      
-        HAL_WRITE_UINT16(CYGARC_REG_ICR1, icr1);                         
-    }                                                                    
-}
-
-//---------------------------------------------------------------------------
 // End of hal_misc.c
--- a/packages/hal/sh/arch/current/src/hal_mk_defs.c
+++ b/packages/hal/sh/arch/current/src/hal_mk_defs.c
@@ -103,18 +103,6 @@ main(void)
     DEFINE(CYGNUM_HAL_VSR_MAX, CYGNUM_HAL_VSR_MAX);
     DEFINE(CYGNUM_HAL_VSR_COUNT, CYGNUM_HAL_VSR_COUNT);
     DEFINE(CYGNUM_HAL_VSR_EXCEPTION_COUNT, CYGNUM_HAL_VSR_EXCEPTION_COUNT);
-
-    // Caching details
-    DEFINE(CYGARC_REG_CACHE_ADDRESS_FLUSH, CYGARC_REG_CACHE_ADDRESS_FLUSH);
-    DEFINE(CYGARC_REG_CACHE_ADDRESS_BASE,CYGARC_REG_CACHE_ADDRESS_BASE);
-    DEFINE(CYGARC_REG_CACHE_ADDRESS_TOP,CYGARC_REG_CACHE_ADDRESS_TOP);
-    DEFINE(CYGARC_REG_CACHE_ADDRESS_STEP,CYGARC_REG_CACHE_ADDRESS_STEP);
-    DEFINE(HAL_UCACHE_SIZE, HAL_UCACHE_SIZE);
-    DEFINE(HAL_UCACHE_WAYS, HAL_UCACHE_WAYS);
-    DEFINE(HAL_UCACHE_LINE_SIZE, HAL_UCACHE_LINE_SIZE);
-
-
-    // Variant definitions - want these to be included instead.
 }
 
 //--------------------------------------------------------------------------
deleted file mode 100644
--- a/packages/hal/sh/arch/current/src/sh3_sci.c
+++ /dev/null
@@ -1,307 +0,0 @@
-//=============================================================================
-//
-//      sh3_sci.c
-//
-//      Simple driver for the SH Serial Communication Interface (SCI)
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        1999-05-17
-// Description: Simple driver for the SH Serial Communication Interface
-//              Clients of this file can configure the behavior with:
-//              CYGNUM_SCI_PORTS:  number of SCI ports
-//
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/hal.h>
-
-#ifdef CYGNUM_HAL_SH_SH3_SCI_PORTS
-
-#include <cyg/hal/hal_io.h>             // IO macros
-#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
-#include <cyg/hal/hal_misc.h>           // Helper functions
-#include <cyg/hal/hal_intr.h>           // HAL_ENABLE/MASK/UNMASK_INTERRUPTS
-#include <cyg/hal/hal_arch.h>           // SAVE/RESTORE GP
-#include <cyg/hal/hal_if.h>             // Calling-if API
-#include <cyg/hal/sh_regs.h>            // serial register definitions
-
-#include <cyg/hal/sh3_sci.h>            // our header
-
-//--------------------------------------------------------------------------
-
-#ifndef CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE
-# define CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE 38400
-#endif
-
-void
-cyg_hal_plf_sci_init_channel(const channel_data_t* chan)
-{
-    cyg_uint8 tmp;
-    cyg_uint8* base = chan->base;
-
-    // Disable Tx/Rx interrupts, but enable Tx/Rx
-    HAL_WRITE_UINT8(base+_REG_SCSCR,
-                    CYGARC_REG_SCSCR_TE|CYGARC_REG_SCSCR_RE);
-
-    // 8-1-no parity.
-    HAL_WRITE_UINT8(base+_REG_SCSMR, 0);
-
-    // Set speed to CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE
-    HAL_READ_UINT8(base+_REG_SCSMR, tmp);
-    tmp &= ~CYGARC_REG_SCSMR_CKSx_MASK;
-    tmp |= CYGARC_SCBRR_CKSx(CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE);
-    HAL_WRITE_UINT8(base+_REG_SCSMR, tmp);
-    HAL_WRITE_UINT8(base+_REG_SCBRR, CYGARC_SCBRR_N(CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE));
-}
-
-static cyg_bool
-cyg_hal_plf_sci_getc_nonblock(void* __ch_data, cyg_uint8* ch)
-{
-    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
-    cyg_uint8 sr;
-
-    HAL_READ_UINT8(base+_REG_SCSSR, sr);
-    if ((sr & CYGARC_REG_SCSSR_RDRF) == 0)
-        return false;
-
-    HAL_READ_UINT8(base+_REG_SCRDR, *ch);
-
-    // Clear buffer full flag.
-    HAL_WRITE_UINT8(base+_REG_SCSSR, sr & ~CYGARC_REG_SCSSR_RDRF);
-
-    return true;
-}
-
-cyg_uint8
-cyg_hal_plf_sci_getc(void* __ch_data)
-{
-    cyg_uint8 ch;
-    CYGARC_HAL_SAVE_GP();
-
-    while(!cyg_hal_plf_sci_getc_nonblock(__ch_data, &ch));
-
-    CYGARC_HAL_RESTORE_GP();
-    return ch;
-}
-
-void
-cyg_hal_plf_sci_putc(void* __ch_data, cyg_uint8 c)
-{
-    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
-    cyg_uint8 sr;
-    CYGARC_HAL_SAVE_GP();
-
-    do {
-        HAL_READ_UINT8(base+_REG_SCSSR, sr);
-    } while ((sr & CYGARC_REG_SCSSR_TDRE) == 0);
-
-    HAL_WRITE_UINT8(base+_REG_SCTDR, c);
-
-    // Clear empty flag.
-    HAL_WRITE_UINT8(base+_REG_SCSSR, sr & ~CYGARC_REG_SCSSR_TDRE);
-
-    // Hang around until the character has been safely sent.
-    do {
-        HAL_READ_UINT8(base+_REG_SCSSR, sr);
-    } while ((sr & CYGARC_REG_SCSSR_TDRE) == 0);
-
-    CYGARC_HAL_RESTORE_GP();
-}
-
-#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
-    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
-
-static channel_data_t channels[CYGNUM_HAL_SH_SH3_SCI_PORTS];
-
-static void
-cyg_hal_plf_sci_write(void* __ch_data, const cyg_uint8* __buf, 
-                         cyg_uint32 __len)
-{
-    CYGARC_HAL_SAVE_GP();
-
-    while(__len-- > 0)
-        cyg_hal_plf_sci_putc(__ch_data, *__buf++);
-
-    CYGARC_HAL_RESTORE_GP();
-}
-
-static void
-cyg_hal_plf_sci_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
-{
-    CYGARC_HAL_SAVE_GP();
-
-    while(__len-- > 0)
-        *__buf++ = cyg_hal_plf_sci_getc(__ch_data);
-
-    CYGARC_HAL_RESTORE_GP();
-}
-
-cyg_bool
-cyg_hal_plf_sci_getc_timeout(void* __ch_data, cyg_uint8* ch)
-{
-    channel_data_t* chan = (channel_data_t*)__ch_data;
-    int delay_count;
-    cyg_bool res;
-    CYGARC_HAL_SAVE_GP();
-
-    delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
-
-    for(;;) {
-        res = cyg_hal_plf_sci_getc_nonblock(__ch_data, ch);
-        if (res || 0 == delay_count--)
-            break;
-        
-        CYGACC_CALL_IF_DELAY_US(100);
-    }
-
-    CYGARC_HAL_RESTORE_GP();
-    return res;
-}
-
-static int
-cyg_hal_plf_sci_control(void *__ch_data, __comm_control_cmd_t __func, ...)
-{
-    static int irq_state = 0;
-    channel_data_t* chan = (channel_data_t*)__ch_data;
-    cyg_uint8 scr;
-    int ret = 0;
-    CYGARC_HAL_SAVE_GP();
-
-    switch (__func) {
-    case __COMMCTL_IRQ_ENABLE:
-        irq_state = 1;
-        HAL_INTERRUPT_UNMASK(chan->isr_vector);
-        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
-        scr |= CYGARC_REG_SCSCR_RIE;
-        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
-        break;
-    case __COMMCTL_IRQ_DISABLE:
-        ret = irq_state;
-        irq_state = 0;
-        HAL_INTERRUPT_UNMASK(chan->isr_vector);
-        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
-        scr &= ~CYGARC_REG_SCSCR_RIE;
-        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
-        break;
-    case __COMMCTL_DBG_ISR_VECTOR:
-        ret = chan->isr_vector;
-        break;
-    case __COMMCTL_SET_TIMEOUT:
-    {
-        va_list ap;
-
-        va_start(ap, __func);
-
-        ret = chan->msec_timeout;
-        chan->msec_timeout = va_arg(ap, cyg_uint32);
-
-        va_end(ap);
-    }        
-    default:
-        break;
-    }
-    CYGARC_HAL_RESTORE_GP();
-    return ret;
-}
-
-static int
-cyg_hal_plf_sci_isr(void *__ch_data, int* __ctrlc, 
-                    CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
-{
-    cyg_uint8 c, sr;
-    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
-    int res = 0;
-    CYGARC_HAL_SAVE_GP();
-
-    *__ctrlc = 0;
-    HAL_READ_UINT8(base+_REG_SCSSR, sr);
-    if (sr & CYGARC_REG_SCSSR_RDRF) {
-        HAL_READ_UINT8(base+_REG_SCRDR, c);
-
-        // Clear buffer full flag.
-        HAL_WRITE_UINT8(base+_REG_SCSSR, 
-                        CYGARC_REG_SCSSR_CLEARMASK & ~CYGARC_REG_SCSSR_RDRF);
-
-        if( cyg_hal_is_break( &c , 1 ) )
-            *__ctrlc = 1;
-
-        res = CYG_ISR_HANDLED;
-    }
-
-    CYGARC_HAL_RESTORE_GP();
-    return res;
-}
-
-void
-cyg_hal_plf_sci_init(int sci_index, int comm_index, 
-                     int rcv_vect, cyg_uint8* base)
-{
-    channel_data_t* chan = &channels[sci_index];
-    hal_virtual_comm_table_t* comm;
-    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
-
-    // Initialize channel table
-    chan->base = base;
-    chan->isr_vector = rcv_vect;
-    chan->msec_timeout = 1000;
-
-    // Disable interrupts.
-    HAL_INTERRUPT_MASK(chan->isr_vector);
-
-    // Init channel
-    
-    cyg_hal_plf_sci_init_channel(chan);
-
-    // Setup procs in the vector table
-
-    // Initialize channel procs
-    CYGACC_CALL_IF_SET_CONSOLE_COMM(comm_index);
-    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
-    CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
-    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_sci_write);
-    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_sci_read);
-    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_sci_putc);
-    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_sci_getc);
-    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_sci_control);
-    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_sci_isr);
-    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_sci_getc_timeout);
-
-    // Restore original console
-    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
-}
-
-#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
-
-#endif // CYGNUM_HAL_SH_SH3_SCI_PORTS
-
-//-----------------------------------------------------------------------------
-// end of sh_sci.c
deleted file mode 100644
--- a/packages/hal/sh/arch/current/src/sh3_scif.c
+++ /dev/null
@@ -1,344 +0,0 @@
-//=============================================================================
-//
-//      sh3_scif.c
-//
-//      Simple driver for the SH3 Serial Communication Interface with FIFO
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        2000-03-30
-// Description: Simple driver for the SH Serial Communication Interface
-//              The driver can be used for either the SCIF or the IRDA
-//              modules (the latter can act as the former).
-//              Clients of this file can configure the behavior with:
-//              CYGNUM_SCIF_PORTS: number of SCI ports
-//
-// Note:        It should be possible to configure a channel to IRDA mode.
-//              Worry about that when some board needs it.
-//
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/hal.h>
-
-#ifdef CYGNUM_HAL_SH_SH3_SCIF_PORTS
-
-#include <cyg/hal/hal_io.h>             // IO macros
-#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
-#include <cyg/hal/hal_misc.h>           // Helper functions
-#include <cyg/hal/hal_intr.h>           // HAL_ENABLE/MASK/UNMASK_INTERRUPTS
-#include <cyg/hal/hal_arch.h>           // SAVE/RESTORE GP
-#include <cyg/hal/hal_if.h>             // Calling-if API
-#include <cyg/hal/sh_regs.h>            // serial register definitions
-#include <cyg/hal/sh_stub.h>            // target_register_t
-
-#include <cyg/hal/sh3_scif.h>           // our header
-
-//--------------------------------------------------------------------------
-
-#ifndef CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE
-# define CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE 38400
-#endif
-
-void
-cyg_hal_plf_scif_init_channel(const channel_data_t* chan)
-{
-    cyg_uint8* base = chan->base;
-    cyg_uint8 tmp;
-    cyg_uint16 sr;
-
-    // Disable everything.
-    HAL_WRITE_UINT8(base+_REG_SCSCR, 0);
-
-    // Reset FIFO.
-    HAL_WRITE_UINT8(base+_REG_SCFCR, 
-                    CYGARC_REG_SCFCR2_TFRST|CYGARC_REG_SCFCR2_RFRST);
-
-    // 8-1-no parity.
-    HAL_WRITE_UINT8(base+_REG_SCSMR, 0);
-
-    // Set speed to CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE
-    HAL_READ_UINT8(base+_REG_SCSMR, tmp);
-    tmp &= ~CYGARC_REG_SCSMR2_CKSx_MASK;
-    tmp |= CYGARC_SCBRR_CKSx(CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE);
-    HAL_WRITE_UINT8(base+_REG_SCSMR, tmp);
-    HAL_WRITE_UINT8(base+_REG_SCBRR, CYGARC_SCBRR_N(CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE));
-
-    // Let things settle: Here we should should wait the equivalent of
-    // one bit interval,
-    // i.e. 1/CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE second, but
-    // until we have something like the Linux delay loop, it's hard to
-    // do reliably. So just move on and hope for the best (this is
-    // unlikely to cause problems since the CPU has just come out of
-    // reset anyway).
-
-    // Clear status register (read back first).
-    HAL_READ_UINT16(base+_REG_SCSSR, sr);
-    HAL_WRITE_UINT16(base+_REG_SCSSR, 0);
-
-    // Bring FIFO out of reset and set to trigger on every char in
-    // FIFO (or C-c input would not be processed).
-    HAL_WRITE_UINT8(base+_REG_SCFCR, 
-                    CYGARC_REG_SCFCR2_RTRG_1|CYGARC_REG_SCFCR2_TTRG_1);
-
-    // Leave Tx/Rx interrupts disabled, but enable Tx/Rx
-    HAL_WRITE_UINT8(base+_REG_SCSCR, 
-                    CYGARC_REG_SCSCR2_TE|CYGARC_REG_SCSCR2_RE);
-}
-
-//static 
-cyg_bool
-cyg_hal_plf_scif_getc_nonblock(void* __ch_data, cyg_uint8* ch)
-{
-    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
-    cyg_uint16 fdr, sr;
-
-    HAL_READ_UINT16(base+_REG_SCFDR, fdr);
-    if (0 == (fdr & CYGARC_REG_SCFDR2_RCOUNT_MASK))
-        return false;
-
-    HAL_READ_UINT8(base+_REG_SCFRDR, *ch);
-
-    // Clear DR/RDF flags
-    HAL_READ_UINT16(base+_REG_SCSSR, sr);
-    HAL_WRITE_UINT16(base+_REG_SCSSR,
-                     CYGARC_REG_SCSSR2_CLEARMASK & ~(CYGARC_REG_SCSSR2_RDF | CYGARC_REG_SCSSR2_DR));
-
-    return true;
-}
-
-cyg_uint8
-cyg_hal_plf_scif_getc(void* __ch_data)
-{
-    cyg_uint8 ch;
-    CYGARC_HAL_SAVE_GP();
-
-    while(!cyg_hal_plf_scif_getc_nonblock(__ch_data, &ch));
-
-    CYGARC_HAL_RESTORE_GP();
-    return ch;
-}
-
-void
-cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c)
-{
-    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
-    cyg_uint16 fdr, sr;
-    CYGARC_HAL_SAVE_GP();
-
-    do {
-        HAL_READ_UINT16(base+_REG_SCFDR, fdr);
-    } while (((fdr & CYGARC_REG_SCFDR2_TCOUNT_MASK) >> CYGARC_REG_SCFDR2_TCOUNT_shift) == 16);
-
-    HAL_WRITE_UINT8(base+_REG_SCFTDR, c);
-
-    // Clear FIFO-empty/transmit end flags (read back SR first)
-    HAL_READ_UINT16(base+_REG_SCSSR, sr);
-    HAL_WRITE_UINT16(base+_REG_SCSSR, CYGARC_REG_SCSSR2_CLEARMASK   
-                     & ~(CYGARC_REG_SCSSR2_TDFE | CYGARC_REG_SCSSR2_TEND ));
-
-    // Hang around until the character has been safely sent.
-    do {
-        HAL_READ_UINT16(base+_REG_SCFDR, fdr);
-    } while ((fdr & CYGARC_REG_SCFDR2_TCOUNT_MASK) != 0);
-
-    CYGARC_HAL_RESTORE_GP();
-}
-
-#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
-    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
-
-static channel_data_t channels[CYGNUM_HAL_SH_SH3_SCIF_PORTS];
-
-static void
-cyg_hal_plf_scif_write(void* __ch_data, const cyg_uint8* __buf, 
-                         cyg_uint32 __len)
-{
-    CYGARC_HAL_SAVE_GP();
-
-    while(__len-- > 0)
-        cyg_hal_plf_scif_putc(__ch_data, *__buf++);
-
-    CYGARC_HAL_RESTORE_GP();
-}
-
-static void
-cyg_hal_plf_scif_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
-{
-    CYGARC_HAL_SAVE_GP();
-
-    while(__len-- > 0)
-        *__buf++ = cyg_hal_plf_scif_getc(__ch_data);
-
-    CYGARC_HAL_RESTORE_GP();
-}
-
-cyg_bool
-cyg_hal_plf_scif_getc_timeout(void* __ch_data, cyg_uint8* ch)
-{
-    channel_data_t* chan = (channel_data_t*)__ch_data;
-    int delay_count;
-    cyg_bool res;
-    CYGARC_HAL_SAVE_GP();
-
-    delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
-
-    for(;;) {
-        res = cyg_hal_plf_scif_getc_nonblock(__ch_data, ch);
-        if (res || 0 == delay_count--)
-            break;
-        
-        CYGACC_CALL_IF_DELAY_US(100);
-    }
-
-    CYGARC_HAL_RESTORE_GP();
-    return res;
-}
-
-static int
-cyg_hal_plf_scif_control(void *__ch_data, __comm_control_cmd_t __func, ...)
-{
-    static int irq_state = 0;
-    channel_data_t* chan = (channel_data_t*)__ch_data;
-    cyg_uint8 scr;
-    int ret = 0;
-    CYGARC_HAL_SAVE_GP();
-
-    switch (__func) {
-    case __COMMCTL_IRQ_ENABLE:
-        irq_state = 1;
-        HAL_INTERRUPT_UNMASK(chan->isr_vector);
-        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
-        scr |= CYGARC_REG_SCSCR2_RIE;
-        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
-        break;
-    case __COMMCTL_IRQ_DISABLE:
-        ret = irq_state;
-        irq_state = 0;
-        HAL_INTERRUPT_UNMASK(chan->isr_vector);
-        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
-        scr &= ~CYGARC_REG_SCSCR2_RIE;
-        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
-        break;
-    case __COMMCTL_DBG_ISR_VECTOR:
-        ret = chan->isr_vector;
-        break;
-    case __COMMCTL_SET_TIMEOUT:
-    {
-        va_list ap;
-
-        va_start(ap, __func);
-
-        ret = chan->msec_timeout;
-        chan->msec_timeout = va_arg(ap, cyg_uint32);
-
-        va_end(ap);
-    }        
-    default:
-        break;
-    }
-    CYGARC_HAL_RESTORE_GP();
-    return ret;
-}
-
-static int
-cyg_hal_plf_scif_isr(void *__ch_data, int* __ctrlc, 
-                     CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
-{
-    cyg_uint8 c;
-    cyg_uint16 fdr, sr;
-    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
-    int res = 0;
-    CYGARC_HAL_SAVE_GP();
-
-    *__ctrlc = 0;
-    HAL_READ_UINT16(base+_REG_SCFDR, fdr);
-    if ((fdr & CYGARC_REG_SCFDR2_RCOUNT_MASK) != 0) {
-        HAL_READ_UINT8(base+_REG_SCFRDR, c);
-
-        // Clear buffer full flag (read back first).
-        HAL_READ_UINT16(base+_REG_SCSSR, sr);
-        HAL_WRITE_UINT16(base+_REG_SCSSR, 
-                         CYGARC_REG_SCSSR2_CLEARMASK & ~CYGARC_REG_SCSSR2_RDF);
-
-        if( cyg_hal_is_break( &c , 1 ) )
-            *__ctrlc = 1;
-
-        res = CYG_ISR_HANDLED;
-    }
-
-    CYGARC_HAL_RESTORE_GP();
-    return res;
-}
-
-void
-cyg_hal_plf_scif_init(int scif_index, int comm_index, 
-                      int rcv_vect, cyg_uint8* base)
-{
-    channel_data_t* chan = &channels[scif_index];
-    hal_virtual_comm_table_t* comm;
-    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
-
-    // Initialize channel table
-    chan->base = base;
-    chan->isr_vector = rcv_vect;
-    chan->msec_timeout = 1000;
-
-    // Disable interrupts.
-    HAL_INTERRUPT_MASK(chan->isr_vector);
-
-    // Init channel
-    cyg_hal_plf_scif_init_channel(chan);
-
-    // Setup procs in the vector table
-
-    // Initialize channel procs
-    CYGACC_CALL_IF_SET_CONSOLE_COMM(comm_index);
-    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
-    CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
-    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_scif_write);
-    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_scif_read);
-    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_scif_putc);
-    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_scif_getc);
-    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_scif_control);
-    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_scif_isr);
-    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_scif_getc_timeout);
-
-    // Restore original console
-    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
-}
-
-#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
-
-#endif // CYGNUM_HAL_SH_SH3_SCIF_PORTS
-
-//-----------------------------------------------------------------------------
-// end of sh3_scif.c
--- a/packages/hal/sh/arch/current/src/sh_stub.c
+++ b/packages/hal/sh/arch/current/src/sh_stub.c
@@ -131,7 +131,7 @@ void __single_step (void)
     // The address of the instruction to execute.
     HAL_WRITE_UINT32(CYGARC_REG_BARA, get_register(PC));
     // Match entire address.
-#ifdef CYGARC_SH_MOD_UBC_V1
+#if (CYGARC_SH_MOD_UBC == 1)
     HAL_WRITE_UINT8(CYGARC_REG_BAMRA, CYGARC_REG_BAMRA_BARA_UNMASKED);
 #else
     HAL_WRITE_UINT32(CYGARC_REG_BAMRA, 0xffffffff);
@@ -140,7 +140,7 @@ void __single_step (void)
     HAL_WRITE_UINT16(CYGARC_REG_BRCR, CYGARC_REG_BRCR_PCBA);
     // Stop on IFETCH/READ
     HAL_WRITE_UINT16(CYGARC_REG_BBRA, 
-#ifdef CYGARC_SH_MOD_UBC_V3
+#if (CYGARC_SH_MOD_UBC == 3)
                      CYGARC_REG_BBRA_CPU| // Match on CPU cycle
 #endif
                      CYGARC_REG_BBRA_IFETCH|CYGARC_REG_BBRA_READ);
--- a/packages/hal/sh/arch/current/src/vectors.S
+++ b/packages/hal/sh/arch/current/src/vectors.S
@@ -53,6 +53,7 @@
 #endif
 
 #include <cyg/hal/arch.inc>
+#include <cyg/hal/variant.inc>
 #include <cyg/hal/sh_regs.h>
 #include <cyg/hal/sh_offsets.inc>
 
@@ -66,22 +67,6 @@
 #undef __DEBUG
         
 #===========================================================================
-# SR initialization value
-# zero all bits except:
-# MD = Processor operation mode field (privileged mode)
-# I0-3 = Mask out all interrupts but NMI.
-#
-# When saving or restoring the state of an exception or interrupt, the bit
-# CYGARC_REG_SR_RB is also set, switching the register bank. When this bit
-# is set, interrupts must be disabled.
-#
-# Note: We could also use the BL bit to prevent interrupts, but that would
-#       also prevent the use of breakpoints.
-
-#define CYG_SR (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK)
-#define CYG_SR_BANK1 (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK|CYGARC_REG_SR_RB)
-
-#===========================================================================
 # Start by defining the exceptions vectors.
         .section ".vectors","ax"
 
@@ -124,7 +109,7 @@
         mov     #1,r7
 #endif
 
-        mov     #CYGARC_REG_EXCEVT,r1
+        mov.l   $nCYGARC_REG_EXCEVT,r1
         mov.l   @r1,r1
         shlr2   r1
         shlr    r1                      ! divide cause by 0x08
@@ -160,7 +145,7 @@
 #ifdef __DEBUG
         mov.l   $exc_state_marker,r0
         mov.l   r0,@-r15
-        mov     #CYGARC_REG_EXCEVT,r0
+        mov.l   $nCYGARC_REG_EXCEVT,r0
         mov.l   @r0,r0
         mov.l   r0,@-r15
 #endif
@@ -213,7 +198,7 @@
         .globl  _cyg_hal_default_exception_vsr_bp_safe
 _cyg_hal_default_exception_vsr_bp_safe:
 #endif
-        mov     #CYGARC_REG_EXCEVT,r0
+        mov.l   $nCYGARC_REG_EXCEVT,r0
         mov.l   @r0,r4
         mov     #-5,r0                  ! divide cause by 0x20
         shld    r0,r4
@@ -257,7 +242,7 @@
         mov      #2,r7
 #endif
 
-        mov     #CYGARC_REG_EXCEVT,r1
+        mov.l   $nCYGARC_REG_EXCEVT,r1
         mov.l   @r1,r1
         shlr2   r1
         shlr    r1                      ! divide cause by 0x08
@@ -269,6 +254,8 @@
         .align   2
 $_hal_vsr_table2:
         .long    _hal_vsr_table
+$nCYGARC_REG_EXCEVT:
+        .long   CYGARC_REG_EXCEVT
 
 #---------------------------------------------------------------------------
 # Interrupt entry
@@ -279,7 +266,7 @@
 #ifdef CYGHWR_HAL_SH_IRQ_HANDLE_SPURIOUS_INTERRUPTS
         # A spurious interrupt with INTEVT=0 may be caused by
         # clearing of BL. Those interrupts need to be ignored.
-        mov     #CYGARC_REG_INTEVT,r0
+        mov.l   $nCYGARC_REG_INTEVT,r0
         mov.l   @r0,r0
         cmp/eq  #0,r0
         bf      1f
@@ -415,31 +402,13 @@ 1:      mov.l   r8,@-r15                
 1:
 #endif
 
-        # Decode the interrupt vector
-#ifdef CYGARC_SH_MOD_INTC_V2
-        mov.l   $nCYGARC_REG_INTEVT2,r0
-#else
-        mov     #CYGARC_REG_INTEVT,r0
-#endif
-        mov.l   @r0,r4
-        mov     #-5,r0                  ! divide cause by 0x20
-        shld    r0,r4
-        add     #-14,r4                 ! adjust so NMI becomes 0
+        # Decode the interrupt vector, and find ISR index
+	hal_intc_decode r0,r4
 
         mov     #CYGARC_SHREG_EVENT,r0
         mov.l   r4,@(r0,r8)             ! store decoded vector number back
                                         ! to saved state.
-
-        // Find ISR index.
-#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-#define CYG_ISR_TABLE_SIZE    1
-        mov     #0,r9                   ! only one ISR in the table
-#else //  CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-#define CYG_ISR_TABLE_SIZE    CYGNUM_HAL_ISR_COUNT
-        mov     r4,r9
-        shll2   r9                      ! get from vector number to ISR index
-#endif //  CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
-
+	hal_intc_translate r4,r9
 
 #if defined(CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT) \
     || defined(CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT)
@@ -640,7 +609,9 @@ restore_state:
         .long   CYG_SR
 $nCYG_SR_BANK1:
         .long   CYG_SR_BANK1
-#ifdef CYGARC_SH_MOD_INTC_V2
+$nCYGARC_REG_INTEVT:
+        .long   CYGARC_REG_INTEVT
+#ifdef CYGARC_REG_INTEVT2
 $nCYGARC_REG_INTEVT2:
         .long   CYGARC_REG_INTEVT2
 #endif
@@ -675,54 +646,8 @@ restore_state:
 #---------------------------------------------------------------------------
 # Platform initialization (reset)
 __reset_platform:               
-        # Initialize CPU
-        mov.l   $nCYG_SR,r1             ! Put CPU in a well-known state
-        ldc     r1,sr
-        mov     #0,r0
-        mov     #CYGARC_REG_CCR,r1      ! Disable cache
-        mov.l   r0,@r1
-        mov     #CYGARC_REG_MMUCR,r1    ! Disable MMU
-        mov.l   r0,@r1
-        mov     #CYGARC_REG_BBRA,r1     ! Disable UBC Channel A
-        mov.w   r0,@r1
-        mov     #CYGARC_REG_BBRB,r1     ! Disable UBC Channel B
-        mov.w   r0,@r1
-        mov     #CYGARC_REG_BRCR,r1     ! Reset UBC common register
-        mov.w   r0,@r1
-        mov.l   $CYGARC_REG_TSTR,r1     ! Disable timers
-        mov.b   r0,@r1
-        mov.l   $CYGARC_REG_IPRA,r1     ! Disable interrupt request sources
-        mov.w   r0,@r1
-        mov.l   $CYGARC_REG_IPRB,r1
-        mov.w   r0,@r1
-#ifdef CYGARC_SH_MOD_INTC_V2
-        mov.l   $CYGARC_REG_IPRC,r1
-        mov.w   r0,@r1
-        mov.l   $CYGARC_REG_IPRD,r1
-        mov.w   r0,@r1
-        mov.l   $CYGARC_REG_IPRE,r1
-        mov.w   r0,@r1
-#ifdef CYGARC_SH_MOD_INTC_V3
-        mov.l   $CYGARC_REG_IPRF,r1
-        mov.w   r0,@r1
-#endif
-	mov.w   $nCYG_ICR1_INIT,r0
-        mov.l   $CYGARC_REG_ICR1,r1     ! Set interrupt controller to IRQ mode
-        mov.w   r0,@r1
-#endif
-	mov.w	$nCYG_WTCSR,r0          ! Clear watchdog
-	mov	#CYGARC_REG_WTCSR,r1
-	mov.w	r0,@r1
+	hal_post_reset_init	
 
-        # Initialize VBR if necessary
-#if     !defined(CYG_HAL_STARTUP_RAM) ||                \
-        (       defined(CYG_HAL_STARTUP_RAM) &&         \
-                !defined(CYGSEM_HAL_USE_ROM_MONITOR))
-        mov.l   $__reset,r1             ! Set VBR
-        ldc     r1,vbr
-#endif
-
-        
 #ifdef __DEBUG
         mov     #0,r0
         mov     #1,r1
@@ -740,45 +665,7 @@ restore_state:
         mov     #13,r13
         mov     #14,r14
 #endif
-
-         bra    hal_hw_init
-          nop
-
-$nCYG_WTCSR:
-	.word	0xa500		! clear all CSR bits
-
-	.align	2
-
-$nCYG_SR:
-        .long   CYG_SR
-$CYGARC_REG_TSTR:
-        .long   CYGARC_REG_TSTR
-$CYGARC_REG_IPRA:
-        .long   CYGARC_REG_IPRA
-$CYGARC_REG_IPRB:
-        .long   CYGARC_REG_IPRB
-#ifdef CYGARC_SH_MOD_INTC_V2
-$CYGARC_REG_IPRC:
-        .long   CYGARC_REG_IPRC
-$CYGARC_REG_IPRD:
-        .long   CYGARC_REG_IPRD
-$CYGARC_REG_IPRE:
-        .long   CYGARC_REG_IPRE
-$CYGARC_REG_ICR1:
-        .long   CYGARC_REG_ICR1
-#endif
-#ifdef CYGARC_SH_MOD_INTC_V2
-$CYGARC_REG_IPRF:
-        .long   CYGARC_REG_IPRF
-$nCYG_ICR1_INIT:
-	.word	CYGARC_REG_ICR1_INIT
-	.align	2
-#endif
-$__reset:
-        .long   __reset
-	
-hal_hw_init:
-        
+       
         # Call platform specific hardware initialization
         # This may include memory controller initialization. It is not
         # safe to access RAM until after this point.
@@ -895,7 +782,7 @@ 2:
 #         nop
         
         # Enable caches
-        mov.l    $_cyg_hal_enable_caches,r1
+        mov.l    $_cyg_var_enable_caches,r1
         jsr      @r1
          nop
 
@@ -950,8 +837,8 @@ 9:
         .long   __bss_end
 $_cyg_hal_invoke_constructors:
         .long   _cyg_hal_invoke_constructors
-$_cyg_hal_enable_caches:
-        .long   _cyg_hal_enable_caches
+$_cyg_var_enable_caches:
+        .long   _cyg_var_enable_caches
 $_hal_variant_init:
         .long   _hal_variant_init
 $_hal_platform_init:
@@ -972,151 +859,6 @@ 9:
 #endif
 
 #---------------------------------------------------------------------------
-# Cache operations
-# These need to be written in assembly to ensure they do not rely on data
-# in cachable space (i.e., code must use registers exclusively, not the stack).
-
-# This macro must be used at the top of each cache function. It ensures
-# that the code gets executed from a shadow region where caching is disabled
-# (0xA0000000).
-        .macro GOTO_NONCACHED_SHADOW
-        mova    10f,r0
-        mov.l   $MASK,r1
-        and     r1,r0
-        mov.l   $BASE,r1
-        or      r1,r0
-        jmp     @r0
-         nop
-        .align  2
-10:
-        .endm
-
-        .globl _cyg_hal_cache_enable
-_cyg_hal_cache_enable:
-        GOTO_NONCACHED_SHADOW
-        mov     #CYGARC_REG_CCR,r1
-        mov.l   @r1,r0
-        or      #CYGARC_REG_CCR_CE,r0
-        mov.l   r0,@r1
-        nop
-        rts
-         nop
-
-        .globl _cyg_hal_cache_disable
-_cyg_hal_cache_disable:
-        GOTO_NONCACHED_SHADOW
-        mov     #CYGARC_REG_CCR,r1
-        mov.l   @r1,r0
-        mov     #CYGARC_REG_CCR_CE,r2
-        not     r2,r2
-        and     r2,r0
-        mov.l   r0,@r1
-        nop
-        rts
-         nop
-        
-        .globl _cyg_hal_cache_invalidate_all
-_cyg_hal_cache_invalidate_all:
-        GOTO_NONCACHED_SHADOW
-        mov     #CYGARC_REG_CCR,r1
-        mov.l   @r1,r0
-        or      #CYGARC_REG_CCR_CF,r0
-        mov.l   r0,@r1
-        nop                             ! Nothing in the docs suggest we need
-        nop                             ! nops here, but without them, the
-        nop                             ! CPU crashes.
-        rts
-         nop
-
-        .globl _cyg_hal_cache_sync
-_cyg_hal_cache_sync:
-        GOTO_NONCACHED_SHADOW
-        mov.l   $CYGARC_REG_CACHE_ADDRESS_FLUSH,r0
-        mov.l   $CYGARC_REG_CACHE_ADDRESS_BASE,r1
-        mov.l   $CYGARC_REG_CACHE_ADDRESS_TOP,r2
-        mov.l   $CYGARC_REG_CACHE_ADDRESS_STEP,r3
-1:      cmp/hi  r1,r2
-        bf      2f
-        mov.l   r0,@r1
-        bra     1b        
-         add     r3,r1                  ! delay slot!
-2:      nop
-        rts
-         nop
-
-	! r4 = base
-	! r5 = size
-        .globl _cyg_hal_cache_sync_region
-_cyg_hal_cache_sync_region:
-        GOTO_NONCACHED_SHADOW
-	mov.l   10f,r0
-	and	r4,r0		! array index
-        mov.l   11f,r1
-	add	r0,r1           ! base (aligned, A set)
-
-	! make sure top is aligned to start of _next_ cache line
-	mov	r1,r0
-	add     r5,r0		! top (non-aligned)
-	add	#2*HAL_UCACHE_LINE_SIZE-1,r0
-	mov.l	13f,r2
-	and	r0,r2
-
-        mov.l   $CYGARC_REG_CACHE_ADDRESS_STEP,r3
-        mov.l   12f,r5
-1:      cmp/hi  r1,r2
-        bf      3f
-	mov	r4,r0		! create address tag
-	and	r5,r0
-	mov.l   r0,@r1          ! store tag in array, causing (sync+)invalidate
-		                ! if the tag matches any of the lines
-        add     r3,r4		! inc address tag
-        bra     1b        
-         add     r3,r1          ! inc array index, delay slot!
-3:      nop
-        rts
-         nop
-
-	.align 2
-10:	.long	((HAL_UCACHE_SIZE/HAL_UCACHE_WAYS)-1)&~0xf ! mask
-11:	.long   CYGARC_REG_CACHE_ADDRESS_BASE|CYGARC_REG_CACHE_ADDRESS_ADDRESS
-12:	.long	CYGARC_REG_CACHE_ADDRESS_TAG_Mask
-13:	.long   ~(HAL_UCACHE_LINE_SIZE-1)
-	
-        .globl _cyg_hal_cache_write_mode
-_cyg_hal_cache_write_mode:
-        GOTO_NONCACHED_SHADOW
-        # Mode argument in r4.
-        # Read current state and mask out the two caching mode bits
-        mov     #CYGARC_REG_CCR,r1
-        mov.l   @r1,r3
-        mov     #CYGARC_REG_CCR_CB|CYGARC_REG_CCR_WT,r2
-	and	r2,r4
-        not     r2,r2
-        and     r2,r3
-        # Or in the new settings and restore to CCR
-        or      r4,r3
-        mov.l   r3,@r1
-        nop
-        rts
-         nop
-
-        .align  2
-$CYGARC_REG_CACHE_ADDRESS_FLUSH:
-        .long   CYGARC_REG_CACHE_ADDRESS_FLUSH
-$CYGARC_REG_CACHE_ADDRESS_BASE:
-        .long   CYGARC_REG_CACHE_ADDRESS_BASE
-$CYGARC_REG_CACHE_ADDRESS_TOP:
-        .long   CYGARC_REG_CACHE_ADDRESS_TOP
-$CYGARC_REG_CACHE_ADDRESS_STEP:
-        .long   CYGARC_REG_CACHE_ADDRESS_STEP
-
-
-$MASK:
-        .long   0x1fffffff              ! mask off top 3 bits
-$BASE:
-        .long   0xa0000000              ! base of non-cachable memory
-        
-#---------------------------------------------------------------------------
 # Interrupt vector tables.
 # These tables contain the isr, data and object pointers used to deliver
 # interrupts to user code.
@@ -1124,6 +866,11 @@ 13:	.long   ~(HAL_UCACHE_LINE_SIZE-1)
         .data
 
         .extern _hal_default_isr
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+#define CYG_ISR_TABLE_SIZE    1
+#else
+#define CYG_ISR_TABLE_SIZE    CYGNUM_HAL_ISR_COUNT
+#endif
 
         .globl  _hal_interrupt_handlers
 _hal_interrupt_handlers:
--- a/packages/hal/sh/cq7708/current/ChangeLog
+++ b/packages/hal/sh/cq7708/current/ChangeLog
@@ -1,3 +1,8 @@
+2000-10-31  Jesper Skov  <jskov@redhat.com>
+
+	* include/plf_intr.h: Added.
+	* include/plf_cache.h: Added.
+
 2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* include/pkgconf/mlt_sh_sh7708_cq7708_ram.h:
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7708/current/include/plf_cache.h
@@ -0,0 +1,61 @@
+#ifndef CYGONCE_PLF_CACHE_H
+#define CYGONCE_PLF_CACHE_H
+
+//=============================================================================
+//
+//      plf_cache.h
+//
+//      Platform specific cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-31
+// Purpose:     Cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations.
+// Usage:
+//              #include <cyg/hal/plf_cache.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+//=============================================================================
+
+// Nothing here at present.
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_PLF_CACHE_H
+// End of plf_cache.h
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7708/current/include/plf_intr.h
@@ -0,0 +1,60 @@
+#ifndef CYGONCE_HAL_PLF_INTR_H
+#define CYGONCE_HAL_PLF_INTR_H
+
+//==========================================================================
+//
+//      plf_intr.h
+//
+//      Platform specific Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,
+// Date:         2000-10-31
+// Purpose:      Define Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock for the CQ7708 board.
+// Usage:
+//              #include <cyg/hal/plf_intr.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+//--------------------------------------------------------------------------
+
+// No platform specific stuff at present.
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_PLF_INTR_H
+// End of plf_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/ChangeLog
@@ -0,0 +1,37 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_sh7750_cq7750.cdl: Adding clock options.
+
+2000-08-16  Haruki Kashiwaya  <kashiwaya@redhat.com>
+
+	* Set up directory structure.
+
+2000-04-18  Ryozaburo Suzuki  <ryos@atom-tc.or.jp>
+
+	* Contributed sources for the CqREEK/SH-4 platform.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/cdl/hal_sh_sh7750_cq7750.cdl
@@ -0,0 +1,319 @@
+# ====================================================================
+#
+#      hal_sh_sh7750_cq7750.cdl
+#
+#      CQ7750 board HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  jskov
+# Contributors:   Ryozaburo Suzuki
+# Date:           1999-10-29
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_SH_SH7750_CQ7750 {
+    display       "CqREEK SH7750 board"
+    parent        CYGPKG_HAL_SH
+    requires      CYGPKG_HAL_SH_7750
+    define_header hal_sh_sh7750_cq7750.h
+    include_dir   cyg/hal
+    description   "
+        The cq HAL package provides the support needed to run
+        eCos on a CqREEK SH7750 board."
+
+    compile       hal_diag.c plf_misc.c
+
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT_GUARANTEED
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_sh.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_sh_sh7750_cq7750.h>"
+
+        puts $::cdl_header "#define CYGNUM_HAL_SH_SH4_SCIF_PORTS 1"
+        puts $::cdl_header "#define CYGHWR_HAL_VSR_TABLE 0x08000000"
+        puts $::cdl_header "#define CYGHWR_HAL_VECTOR_TABLE 0x08000100"
+    }
+
+    cdl_component CYG_HAL_STARTUP {
+        display       "Startup type"
+        flavor        data
+        legal_values  {"RAM" "ROM"}
+        default_value {"RAM"}
+        no_define
+        define -file system.h CYG_HAL_STARTUP
+        description   "
+           When targetting the CQ7750 board it is possible to build
+           the system for either RAM bootstrap or ROM bootstrap.
+           RAM bootstrap generally requires that the board
+           is equipped with ROMs containing a suitable ROM monitor or
+           equivalent software that allows GDB to download the eCos
+           application on to the board. The ROM bootstrap typically
+           requires that the eCos application be blown into EPROMs or
+           equivalent technology."
+    }
+
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+        display      "Number of communication channels on the board"
+        flavor       data
+        calculated   1
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+        display          "Debug serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+           The CQ/7750 board has only one serial port. This option
+           chooses which port will be used to connect to a host
+           running GDB."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+        display          "Diagnostic serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+           The CQ/7750 board has only one serial port.  This option
+           chooses which port will be used for diagnostic output."
+    }
+
+    cdl_component CYGHWR_HAL_SH_PLF_CLOCK_SETTINGS {
+        display          "SH on-chip platform clock controls"
+        description      "
+            The various clocks used by the system are derived from
+            these options."
+        flavor        none
+        no_define
+                     
+        cdl_option CYGHWR_HAL_SH_OOC_XTAL {
+            display          "SH clock crystal"
+            flavor           data
+            legal_values     9000000 to 66000000
+            default_value    33000000
+            no_define
+            description      "
+                This option specifies the frequency of the crystal all
+                other clocks are derived from."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_CKIO {
+            display          "SH clock CKIO output enable"
+            default_value    1
+            description      "
+                This selects whether CKIO output is enabled."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_PLL_1 {
+            display          "SH clock PLL circuit 1"
+            flavor           data
+            default_value    6
+            legal_values     { 0 6 }
+            description      "
+                This selects whether PLL1 is enabled."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_PLL_2 {
+            display          "SH clock PLL circuit 2"
+            flavor           data
+            default_value    1
+            legal_values     { 0 1 }
+            description      "
+                This selects whether PLL2 is enabled."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_IFC {
+            display          "SH clock divider, core"
+            flavor           data
+            default_value    1
+            legal_values     { 1 2 3 4 6 8 }
+            description      "
+                This divider option affects the CPU core clock."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_BFC {
+            display          "SH clock divider, bus"
+            flavor           data
+            default_value    8
+            legal_values     { 1 2 3 4 6 8 }
+            description      "
+                This divider option affects the bus clock."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_PFC {
+            display          "SH clock divider, peripheral"
+            flavor           data
+            default_value    8
+            legal_values     { 1 2 3 4 6 8 }
+            description      "
+                This divider option affects the peripheral clock."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_CLOCK_MODE {
+            display          "SH clock mode"
+            flavor           data
+            default_value    2
+            legal_values     { 0 1 2 3 4 5 }
+            description      "
+                This option must mirror the clock mode hardwired on
+                the MD0-MD2 pins of the CPU in order to correctly
+                initialize the FRQCR register."
+        }
+    }
+
+    cdl_component CYGBLD_GLOBAL_OPTIONS {
+        display "Global build options"
+        flavor  none
+        parent  CYGPKG_NONE
+        description   "
+	    Global build options including control over
+	    compiler flags, linker flags and choice of toolchain."
+
+
+        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+            display "Global command prefix"
+            flavor  data
+            no_define
+            default_value { "sh-elf" }
+            description "
+                This option specifies the command prefix used when
+                invoking the build tools."
+        }
+
+        cdl_option CYGBLD_GLOBAL_CFLAGS {
+            display "Global compiler flags"
+            flavor  data
+            no_define
+            default_value { CYGHWR_HAL_SH_BIGENDIAN ? "-mb -m4 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -ggdb -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : "-ml -m3 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -ggdb -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
+            description   "
+                This option controls the global compiler flags which
+                are used to compile all packages by
+                default. Individual packages may define
+                options which override these global flags."
+        }
+
+        cdl_option CYGBLD_GLOBAL_LDFLAGS {
+            display "Global linker flags"
+            flavor  data
+            no_define
+            default_value { CYGHWR_HAL_SH_BIGENDIAN ? "-mb -m4 -ggdb -nostdlib -Wl,--gc-sections -Wl,-static" : "-ml -m3 -ggdb -nostdlib -Wl,--gc-sections -Wl,-static" }
+            description   "
+                This option controls the global linker flags. Individual
+                packages may define options which override these global flags."
+        }
+
+        cdl_option CYGBLD_BUILD_GDB_STUBS {
+            display "Build GDB stub ROM image"
+            default_value 0
+            requires { CYG_HAL_STARTUP == "ROM" }
+            requires CYGSEM_HAL_ROM_MONITOR
+            requires CYGBLD_BUILD_COMMON_GDB_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+            requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
+            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
+            no_define
+            description "
+                This option enables the building of the GDB stubs for the
+                board. The common HAL controls takes care of most of the
+                build process, but the final conversion from ELF image to
+                binary data is handled by the platform CDL, allowing
+                relocation of the data if necessary."
+
+            make -priority 320 {
+                <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
+                $(OBJCOPY) -O binary $< $@
+            }
+        }
+    }
+
+    cdl_component CYGHWR_MEMORY_LAYOUT {
+        display "Memory layout"
+        flavor data
+        no_define
+        calculated { CYG_HAL_STARTUP == "RAM" ? "sh_sh7750_cq7750_ram" : \
+                                                "sh_sh7750_cq7750_rom" }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+            display "Memory layout linker script fragment"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_sh_sh7750_cq7750_ram.ldi>" : \
+                                                    "<pkgconf/mlt_sh_sh7750_cq7750_rom.ldi>" }
+        }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_H {
+            display "Memory layout header file"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_H
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_sh_sh7750_cq7750_ram.h>" : \
+                                                    "<pkgconf/mlt_sh_sh7750_cq7750_rom.h>" }
+        }
+    }
+
+    cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+        display       "Work with a ROM monitor"
+        flavor        booldata
+        legal_values  { "GDB_stubs" }
+        default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
+        requires      { CYG_HAL_STARTUP == "RAM" }
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      !CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        description   "
+            Support can be enabled for boot ROMs or ROM monitors which contain
+            GDB stubs. This support changes various eCos semantics such as
+            the encoding of diagnostic output, and the overriding of hardware
+            interrupt vectors."
+    }
+
+    cdl_option CYGSEM_HAL_ROM_MONITOR {
+        display       "Behave as a ROM monitor"
+        flavor        bool
+        default_value 0
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      { CYG_HAL_STARTUP == "ROM" }
+        description   "
+            Enable this option if this program is to be used as a ROM monitor,
+            i.e. applications will be loaded into RAM on the board, and this
+            ROM monitor may process exceptions or interrupts generated from the
+            application. This enables features such as utilizing a separate
+            interrupt stack when exceptions are generated."
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/hal_diag.h
@@ -0,0 +1,88 @@
+#ifndef CYGONCE_HAL_HAL_DIAG_H
+#define CYGONCE_HAL_HAL_DIAG_H
+
+//=============================================================================
+//
+//      hal_diag.h
+//
+//      HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-04-24
+// Purpose:     HAL Support for Kernel Diagnostic Routines
+// Description: Diagnostic routines for use during kernel development.
+// Usage:       #include <cyg/hal/hal_diag.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+
+#include <cyg/hal/hal_if.h>
+
+#define HAL_DIAG_INIT() hal_if_diag_init()
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_if_diag_write_char(_c_)
+#define HAL_DIAG_READ_CHAR(_c_) hal_if_diag_read_char(&_c_)
+
+#else // everything by steam
+
+//-----------------------------------------------------------------------------
+// functions implemented in hal_diag.c
+
+externC void hal_diag_init(void);
+
+externC void hal_diag_write_char(char c);
+
+externC void hal_diag_read_char(char *c);
+
+//-----------------------------------------------------------------------------
+
+#define HAL_DIAG_INIT() hal_diag_init()
+
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_diag_write_char(_c_)
+
+#define HAL_DIAG_READ_CHAR(_c_) hal_diag_read_char(&_c_)
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+//-----------------------------------------------------------------------------
+// Simple LED control.
+externC void hal_diag_led_on( void );
+externC void hal_diag_led_off( void );
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_HAL_DIAG_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Wed Nov 01 08:48:23 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x8008000)
+#define CYGMEM_REGION_ram_SIZE (0xff8000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x9000000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_ram.ldi
@@ -0,0 +1,26 @@
+// eCos memory layout - Wed Nov 01 08:48:23 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x8008000, LENGTH = 0xff8000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_vectors (ram, 0x8008000, LMA_EQ_VMA)
+    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_ram.mlt
@@ -0,0 +1,12 @@
+version 0
+region ram 8008000 ff8000 0 !
+section vectors 0 1 0 1 1 1 1 1 8008000 8008000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 1 0 1 0 1 0 1 data data !
+section data 0 8 0 1 0 1 0 1 bss bss !
+section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Wed Nov 01 08:47:52 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x8000200)
+#define CYGMEM_REGION_ram_SIZE (0xfffe00)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0x80000000)
+#define CYGMEM_REGION_rom_SIZE (0x100000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x9000000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_rom.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Wed Nov 01 08:47:52 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x8000200, LENGTH = 0xfffe00
+    rom : ORIGIN = 0x80000000, LENGTH = 0x100000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_vectors (rom, 0x80000000, LMA_EQ_VMA)
+    SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data (ram, 0x8000200, FOLLOWING (.gcc_except_table))
+    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/pkgconf/mlt_sh_sh7750_cq7750_rom.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 8000200 fffe00 0 !
+region rom 80000000 100000 1 !
+section data 0 1 1 1 1 1 0 0 8000200 bss !
+section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section vectors 0 1 0 1 1 1 1 1 80000000 80000000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 1 0 1 0 0 0 1 data !
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/platform.inc
@@ -0,0 +1,228 @@
+#ifndef CYGONCE_HAL_PLATFORM_INC
+#define CYGONCE_HAL_PLATFORM_INC
+##=============================================================================
+##
+##	platform.inc
+##
+##	SH/CQ7750 board assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.0 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://sourceware.cygnus.com/ecos                                        
+#                                                                          
+# Software distributed under the License is distributed on an       
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	jskov
+## Contributors:Ryozaburo Suzuki
+## Date:	2000-04-18
+## Purpose:	SH/CQ7750 board definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the SH/CQ7750 board.
+## Usage:
+##		#include <cyg/hal/platform.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/sh_offsets.inc>
+#include <cyg/hal/sh_regs.h>
+
+#------------------------------------------------------------------------------
+# Hardware initialization.
+
+        .macro  hal_hardware_init
+        // Set up the Bus State Controller
+        mova     BSC_settings_table,r0
+        mov      r0,r3
+1:      mov.l    @r3+,r0                // Address (or zero)
+        mov      r0,r2
+        cmp/eq   #0,r0
+        bt       4f
+        mov.l    @r3+,r1                // data
+        mov.l    @r3+,r0                // byte or word or long?
+
+        cmp/eq   #0,r0   // byte
+        bt       2f
+
+        cmp/eq   #1,r0   // word
+        bt       3f
+
+        bra      1b      // long
+        mov.l    r1,@r2  // delay slot
+
+2:      bra      1b
+        mov.b    r1,@r2  // delay slot
+
+3:      bra      1b
+        mov.w    r1,@r2  // delay slot
+
+        .align  2
+
+BSC_settings_table:
+        # BCR1:
+        .long   CYGARC_REG_BCR1
+        .long   0x0020000c
+        .long   2
+        # BCR2:
+        .long   CYGARC_REG_BCR2
+        .long   0x35F8
+        .long   1
+        # WCR1:
+        .long   CYGARC_REG_WCR1
+        .long   0x77117121
+        .long   2
+        # WCR2:
+        .long   CYGARC_REG_WCR2
+        .long   0xFC8AE520
+        .long   2
+        # WCR3:
+        .long   CYGARC_REG_WCR3
+        .long   0x07117101
+        .long   2
+        # PCR:
+        .long   CYGARC_REG_PCR
+        .long   0x0000
+        .long   1
+        # RTCNT:
+        .long   CYGARC_REG_RTCNT
+        .long   0xa500
+        .long   1
+        # RTCOR:
+        .long   CYGARC_REG_RTCOR
+        .long   0xa53b
+        .long   1
+        # RFCR:
+        .long   CYGARC_REG_RFCR
+        .long   0xa400
+        .long   1
+        # RTCSR:
+        .long   CYGARC_REG_RTCSR
+        .long   0xa508
+        .long   1
+        # MCR:
+        .long   CYGARC_REG_MCR
+        .long   0x10192194
+        .long   2
+        # SDMR2:
+        .long   CYGARC_REG_SDMR2
+        .long   0xaa
+        .long   0
+        # MCR:
+        .long   CYGARC_REG_MCR
+        .long   0x50192194
+        .long   2
+        # SDMR2:
+        .long   CYGARC_REG_SDMR2
+        .long   0xaa
+        .long   0
+        # Table end
+        .long   0
+        
+        .align  2
+4:
+        .endm
+
+#------------------------------------------------------------------------------
+# Monitor initialization.
+
+#ifndef CYGPKG_HAL_SH_MON_DEFINED
+
+#if	defined(CYG_HAL_STARTUP_ROM) ||			\
+	(	defined(CYG_HAL_STARTUP_RAM) &&		\
+		!defined(CYGSEM_HAL_USE_ROM_MONITOR))
+
+	# If we are starting up from ROM, or we are starting in
+	# RAM and NOT using a ROM monitor, initialize the VSR table.
+
+	.macro	hal_mon_init
+        mov.l   $_hal_vsr_table_p,r3
+	# Write exception vectors
+	mov.l   $_cyg_hal_default_exception_vsr_p,r4
+	mov     #CYGNUM_HAL_VSR_EXCEPTION_COUNT,r5
+1:	mov.l   r4,@r3
+        add     #4,r3
+	dt	r5
+	bf	1b
+	# Write interrupt vector
+	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
+	mov.l   r4,@r3
+	bra	2f
+	 nop
+        .align  2
+
+$_cyg_hal_default_exception_vsr_p:
+	.long	_cyg_hal_default_exception_vsr
+$_cyg_hal_default_interrupt_vsr_p:
+	.long	_cyg_hal_default_interrupt_vsr
+
+	.extern _hal_vsr_table
+$_hal_vsr_table_p:
+	.long _hal_vsr_table
+
+2:
+	.endm
+
+#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+	# Initialize the VSR table entries
+	# We only take control of the interrupt vector,
+	# the rest are left to the ROM for now...
+
+	.macro	hal_mon_init
+	# Write interrupt vector
+        mov.l   $_hal_vsr_table_p,r3
+	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
+	mov.l   r4,@r3
+	bra	2f
+	 nop
+        .align  2
+
+$_cyg_hal_default_interrupt_vsr_p:
+	.long	_cyg_hal_default_interrupt_vsr
+
+	.extern _hal_vsr_table
+$_hal_vsr_table_p:
+	.long _hal_vsr_table+CYGNUM_HAL_VECTOR_INTERRUPT*4
+
+2:
+	.endm
+
+#else
+
+	.macro	hal_mon_init
+	.endm
+
+#endif
+
+
+#define CYGPKG_HAL_SH_MON_DEFINED
+
+#endif // CYGPKG_HAL_SH_MON_DEFINED
+
+#endif // CYGONCE_HAL_PLATFORM_INC
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/plf_cache.h
@@ -0,0 +1,61 @@
+#ifndef CYGONCE_PLF_CACHE_H
+#define CYGONCE_PLF_CACHE_H
+
+//=============================================================================
+//
+//      plf_cache.h
+//
+//      Platform specific cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-31
+// Purpose:     Cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations.
+// Usage:
+//              #include <cyg/hal/plf_cache.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+//=============================================================================
+
+// Nothing here at present.
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_PLF_CACHE_H
+// End of plf_cache.h
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/plf_intr.h
@@ -0,0 +1,60 @@
+#ifndef CYGONCE_HAL_PLF_INTR_H
+#define CYGONCE_HAL_PLF_INTR_H
+
+//==========================================================================
+//
+//      plf_intr.h
+//
+//      Platform specific Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,
+// Date:         2000-10-31
+// Purpose:      Define Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock for the CQ7750 board.
+// Usage:
+//              #include <cyg/hal/plf_intr.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+//--------------------------------------------------------------------------
+
+// No platform specific stuff at present.
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_PLF_INTR_H
+// End of plf_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/include/plf_stub.h
@@ -0,0 +1,90 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+//      plf_stub.h
+//
+//      Platform header for GDB stub support.
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-05-18
+// Purpose:     Platform HAL stub support for Hitachi/CQ boards.
+// Usage:       #include <cyg/hal/plf_stub.h>
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h>         // CYG_UNUSED_PARAM, externC
+
+#include <cyg/hal/sh_stub.h>            // architecture stub support
+
+#include <cyg/hal/hal_diag.h>           // hal_diag_led_on
+
+//----------------------------------------------------------------------------
+// Define some platform specific communication details. This is mostly
+// handled by hal_if now, but we need to make sure the comms tables are
+// properly initialized.
+
+externC void cyg_hal_plf_comms_init(void);
+
+#define HAL_STUB_PLATFORM_INIT_SERIAL()       cyg_hal_plf_comms_init()
+
+#define HAL_STUB_PLATFORM_SET_BAUD_RATE(baud) CYG_UNUSED_PARAM(int, (baud))
+#define HAL_STUB_PLATFORM_INTERRUPTIBLE       0
+
+//----------------------------------------------------------------------------
+// Stub initializer.
+#ifdef CYGSEM_HAL_ROM_MONITOR
+# define HAL_STUB_PLATFORM_INIT()              hal_diag_led_on()
+#else
+# define HAL_STUB_PLATFORM_INIT()              CYG_EMPTY_STATEMENT
+#endif
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//----------------------------------------------------------------------------
+// Reset.
+// Block interrupts and cause an exception. This forces a reset.
+#define HAL_STUB_PLATFORM_RESET() \
+    asm volatile ("ldc %0,sr;trapa #0x00;" : : "r" (CYGARC_REG_SR_BL))
+    
+#define HAL_STUB_PLATFORM_RESET_ENTRY 0xa0000000
+
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/src/hal_diag.c
@@ -0,0 +1,218 @@
+//=============================================================================
+//
+//      hal_diag.c
+//
+//      HAL diagnostic output code
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    nickg, jskov
+// Contributors: nickg, jskov
+// Date:         1999-03-23
+// Purpose:      HAL diagnostic output
+// Description:  Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_diag.h>           // our header.
+
+#include <cyg/infra/cyg_type.h>         // base types, externC
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/hal_if.h>             // calling interface API
+#include <cyg/hal/hal_intr.h>           // Interrupt macros
+#include <cyg/hal/sh4_scif.h>            // driver API
+#include <cyg/hal/hal_misc.h>           // Helper functions
+
+#define SCI_BASE ((cyg_uint8*)0xffe80000)
+
+//-----------------------------------------------------------------------------
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
+    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
+
+void
+cyg_hal_plf_comms_init(void)
+{
+    static int initialized = 0;
+
+    if (initialized)
+        return;
+
+    initialized = 1;
+
+    cyg_hal_plf_scif_init(0, 0, CYGNUM_HAL_INTERRUPT_SCIF_RXI, SCI_BASE);
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+//=============================================================================
+// Led control
+//=============================================================================
+#define LED   0xb4000000
+
+void
+hal_diag_led_on( void )
+{
+    HAL_WRITE_UINT8(LED, 0x18);
+}
+
+void
+hal_diag_led_off( void )
+{
+    HAL_WRITE_UINT8(LED, 0);
+}
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+static channel_data_t channel = { (cyg_uint8*)SCI_BASE, 0, 0};
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#include <cyg/hal/hal_stub.h>           // hal_output_gdb_string
+#endif
+
+#if defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs)
+
+#define CYG_HAL_DIAG_GDB
+
+#elif defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+
+#define CYG_HAL_DIAG_GDB
+
+#endif
+
+//-----------------------------------------------------------------------------
+
+void hal_diag_init(void)
+{
+    cyg_hal_plf_scif_init_channel(&channel);
+}
+
+void 
+hal_diag_write_char_serial( char c )
+{
+    cyg_hal_plf_scif_putc(&channel, c);
+}
+
+void
+hal_diag_read_char(char *c)
+{
+    *c = (char) cyg_hal_plf_scif_getc(&channel);
+}
+
+// Packet function
+void 
+hal_diag_write_char(char c)
+{
+#ifdef CYG_HAL_DIAG_GDB
+    static char line[100];
+    static int pos = 0;
+
+    // No need to send CRs
+    if( c == '\r' ) return;
+
+    line[pos++] = c;
+
+    if( c == '\n' || pos == sizeof(line) )
+    {
+        CYG_INTERRUPT_STATE old;
+
+        // Disable interrupts. This prevents GDB trying to interrupt us
+        // while we are in the middle of sending a packet. The serial
+        // receive interrupt will be seen when we re-enable interrupts
+        // later.
+        
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION(old);
+#else
+        HAL_DISABLE_INTERRUPTS(old);
+#endif
+        
+        while(1)
+        {
+            char c1;
+            static char hex[] = "0123456789ABCDEF";
+            cyg_uint8 csum = 0;
+            int i;
+        
+            cyg_hal_plf_scif_putc(&channel, '$');
+            cyg_hal_plf_scif_putc(&channel, 'O');
+            csum += 'O';
+            for( i = 0; i < pos; i++ )
+            {
+                char ch = line[i];
+                char h = hex[(ch>>4)&0xF];
+                char l = hex[ch&0xF];
+                cyg_hal_plf_scif_putc(&channel, h);
+                cyg_hal_plf_scif_putc(&channel, l);
+                csum += h;
+                csum += l;
+            }
+            cyg_hal_plf_scif_putc(&channel, '#');
+            cyg_hal_plf_scif_putc(&channel, hex[(csum>>4)&0xF]);
+            cyg_hal_plf_scif_putc(&channel, hex[csum&0xF]);
+
+            // Wait for the ACK character '+' from GDB here and handle
+            // receiving a ^C instead.
+            c1 = (char) cyg_hal_plf_scif_getc(&channel);
+
+            if( c1 == '+' )
+                break;              // a good acknowledge
+
+            // Check for user break.
+            if( cyg_hal_is_break( &c1, 1 ) )
+                cyg_hal_user_break( NULL );
+
+            // otherwise, loop round again
+        }
+        
+        pos = 0;
+
+        // And re-enable interrupts
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION(old);
+#else
+        HAL_RESTORE_INTERRUPTS(old);
+#endif
+    }
+#else // CYG_HAL_DIAG_GDB
+    cyg_hal_plf_scif_putc(&channel, c);
+#endif
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/cq7750/current/src/plf_misc.c
@@ -0,0 +1,57 @@
+//==========================================================================
+//
+//      plf_misc.c
+//
+//      HAL platform miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,nickg, jlarmour
+// Date:         1999-10-13
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_if.h>             // interfacing API
+
+//--------------------------------------------------------------------------
+void
+hal_platform_init(void)
+{
+    hal_if_init();
+}
+
+//--------------------------------------------------------------------------
+// eof plf_misc.c
deleted file mode 100644
--- a/packages/hal/sh/edk/current/ChangeLog
+++ /dev/null
@@ -1,356 +0,0 @@
-2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
-
-	* include/pkgconf/mlt_sh_edk7708_ram.h:
-	* include/pkgconf/mlt_sh_edk7708_rom.h:
-	* include/pkgconf/mlt_sh_edk7708_romram.h:
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi:
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi:
-	* include/pkgconf/mlt_sh_edk7708_romram.ldi:
-	Regenerated with updated host tools
-
-2000-10-17  Jesper Skov  <jskov@redhat.com>
-
-	* include/pkgconf/mlt_sh_edk7708_ram.h: Adding heap1.
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_rom.h: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_rom.mlt: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_romram.h: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_romram.mlt: Ditto.
-	* include/pkgconf/mlt_sh_edk7708_romram.ldi: Ditto.
-
-2000-10-10  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Fix legal OCC ranges.
-
-2000-09-26  Jesper Skov  <jskov@redhat.com>
-
-	* include/platform.inc: Use calculated FRQCR init value.
-
-	* cdl/hal_sh_edk7708.cdl: Updated clock options.
-
-2000-07-07  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Require sub-variant package.
-
-2000-06-29  Jesper Skov  <jskov@redhat.com>
-
-	* src/hal_diag.c: serial driver API changes.
-
-2000-06-28  Jesper Skov  <jskov@redhat.com>
-
-	* src/hal_diag.c: Include hal_if file.
-	
-2000-06-28  Jesper Skov  <jskov@redhat.com>
-
-	* src/plf_misc.c: 
-	* src/hal_diag.c:
-	* src/plf_stub.c: [deleted]
-	* include/pkgconf/mlt_sh_edk7708_ram.h: 
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_rom.h: 
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_romram.h: 
-	* include/pkgconf/mlt_sh_edk7708_romram.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_romram.mlt: 
-	* include/plf_stub.h: 
-	* include/hal_diag.h: 
-	* cdl/hal_sh_edk7708.cdl: 
-	Changed to use virtual vector table.
-
-1999-06-19  John Dallaway  <jld@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Tidy display strings.
-
-2000-04-12  Jesper Skov  <jskov@redhat.com>
-
-	* src/hal_diag.c: Output text raw if configuration requires it.
-
-	* include/platform.inc: 
-	* src/edk.S: [deleted]
-	* cdl/hal_sh_edk7708.cdl: 
-	Hardware init code moved to platform.inc in order to allow ROMRAM
-	startup.
-
-	* include/pkgconf/mlt_sh_edk7708_romram.h:
-	* include/pkgconf/mlt_sh_edk7708_romram.mlt:
-	* include/pkgconf/mlt_sh_edk7708_romram.ldi:
-	* cdl/hal_sh_edk7708.cdl: 
-	Add ROMRAM startup option.
-	
-2000-04-06  Jonathan Larmour  <jlarmour@redhat.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl: Use -g now that toolchains work with that
-	(and in fact new toolchains no longer work with -ggdb)
-
-2000-04-06  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Define vsr base location.
-
-2000-04-04  Jesper Skov  <jskov@redhat.com>
-
-	* src/hal_diag.c (hal_diag_write_char): Add GDB critical IO region
-	handling.
-
-2000-03-20  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Added board speed variable.
-
-2000-03-09  Jesper Skov  <jskov@redhat.com>
-
-	* src/hal_diag.c: Fix compiler warning.
-
-2000-02-28  Jesper Skov  <jskov@redhat.com>
-
-	* include/platform.inc: Use sh_offsets instead of C header.
-
-2000-02-18  Jonathan Larmour  <jlarmour@redhat.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl (CYGBLD_BUILD_GDB_STUBS): When
-	building stubs, define every dependency required here rather than
-	in the template
-
-2000-02-17  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: 
-	Go back to -ggdb. -gstabs don't provide enough info for
-	source-level debugging.
-	
-	* include/pkgconf/mlt_sh_edk7708_rom.h: 
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_ram.h: 
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt:
-	Don't use . assignment due to tools problem.
-	
-2000-02-16  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Added LE support.
-
-2000-02-15  Jesper Skov  <jskov@redhat.com>
-
-	* misc/STUBS_config:
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_ram.h: 
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt:
-	Updated for new stubs scheme.
-
-	* cdl/hal_sh_edk7708.cdl: Removed stubs startup.
-	Use -gstabs instead of -ggdb to work around problem with GDB.
-
-2000-02-10  Jesper Skov  <jskov@redhat.com>
-
-	* include/plf_stub.h: 
-	HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
-
-2000-02-07  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: use cpu flags when linking.
-
-2000-02-03  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Implements stubs.
-
-2000-01-27  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Moved part of stubs build rule to
-	common HAL.  Changed description.
-
-2000-01-26  Jesper Skov  <jskov@redhat.com>
-
-	* cdl/hal_sh_edk7708.cdl: Fix display string.
-
-2000-01-24  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl: Add stubs build rule.
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_ram.h:
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_stubs.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_stubs.h:
-	* include/pkgconf/mlt_sh_edk7708_stubs.mlt: 
-	Give stub more RAM.
-	
-2000-01-24  John Dallaway  <jld@cygnus.co.uk>
-
-	* cdl/*.cdl:
-
-	Remove obsolete option CYGTST_TESTING_IDENTIFIER.
-
-2000-01-19  Hugo Tyson  <hmt@cygnus.co.uk>
-
-	* cdl/*.cdl: Add descriptions to a number of options &c which were
-	lacking same, also tidied up other typos as noticed en passant.
-
-2000-01-18  Jesper Skov  <jskov@cygnus.co.uk>
-	CR 902066
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_ram.h: 
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
-	Correct RAM size.
-	
-1999-12-21  Jonathan Larmour  <jlarmour@cygnus.co.uk>
-
-	* src/plf_misc.c (cyg_hal_user_break): Rename
-	CYG_HAL_USE_ROM_MONITOR_GDB_STUBS -> CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs
-
-	* cdl/hal_sh_edk7708.cdl: Don't need to define CYG_HAL_SH_SH7708 any
-	more
-	Add new platform-specific CYGSEM_HAL_USE_ROM_MONITOR option to
-	control ROM monitor support
-
-1999-12-20  Gary Thomas  <gthomas@cygnus.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl: Add -Wl for linker options.
-
-1999-11-25  Gary Thomas  <gthomas@cygnus.co.uk>
-
-	* include/pkgconf/mlt_sh_edk7708_stubs.h: 
-	* include/pkgconf/mlt_sh_edk7708_rom.h: 
-	* include/pkgconf/mlt_sh_edk7708_ram.h: New file(s).
-
-1999-11-02  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl: Use define_proc for CPU define.
-
-1999-11-01  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl: Use define_proc for const header defs.
-
-1999-10-29  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* cdl/hal_sh_edk7708.cdl: Added.
-
-1999-10-13  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* src/hal_diag.c (hal_diag_write_char): 
-	* src/plf_misc.c:
-	* src/PKGconf.mak (COMPILE): 
-	Added user breakpoint handling.
-
-1999-09-02  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* misc/STUBS_config: Also disable kernel support in HAL.
-
-1999-08-17  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* misc/STUBS_config: Added.
-
-1999-06-18  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* include/pkgconf/hal_sh_edk7708.h: Consistent EDK7708 naming.
-
-1999-06-01  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* src/hal_diag.c (hal_diag_write_char): Don't look for 0x03
-	chars. It doesn't work well. Better the dedicated magic handles
-	C-c.
-
-	* src/edk.S: Cleaned up memory controller setup.
-
-1999-05-31  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* include/pkgconf/hal_sh_edk7708.h: Removed FIX ME.
-
-	* src/edk.S: Fixed delay-slot problem.
-
-1999-05-28  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* include/pkgconf/hal_sh_edk7708.h: Fixed platform name.
-
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_stubs.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_stubs.mlt: 
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
-	Fixed memory layout and generated MLT files.
-	
-1999-05-28  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* include/pkgconf/hal_sh_edk.h:            [deleted]
-	* include/pkgconf/mlt_sh_edk_ram.ldi:      [deleted]
-	* include/pkgconf/mlt_sh_edk_ram.mlt:      [deleted]
-	* include/pkgconf/mlt_sh_edk_rom.ldi:      [deleted]
-	* include/pkgconf/mlt_sh_edk_stubs.ldi:    [deleted]
-	* include/pkgconf/hal_sh_edk7708.h:        [added]
-	* include/pkgconf/mlt_sh_edk7708_ram.ldi:  [added]
-	* include/pkgconf/mlt_sh_edk7708_ram.mlt:  [added]
-	* include/pkgconf/mlt_sh_edk7708_rom.ldi:  [added]
-	* include/pkgconf/mlt_sh_edk7708_rom.mlt:  [added]
-	* include/pkgconf/mlt_sh_edk7708_stubs.ldi:[added]
-	* include/pkgconf/mlt_sh_edk7708_stubs.mlt:[added]
-	* src/PKGconf.mak: 
-        Renamed SH platform package to edk7708.
-
-1999-05-21  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* include/pkgconf/hal_sh_edk.h (CYGNUM_HAL_RTC_PERIOD): The timer
-	is running at 1/4 of the peripheral clock.
-
-	* include/plf_stub.h: Added RESET code.
-
-	* include/pkgconf/hal_sh_edk.h: Added RTC data for the edk board.
-
-1999-05-20  John Dallaway  <jld@cygnus.co.uk>
-
-	* include/pkgconf/mlt_sh_edk_ram.mlt: Working MLT-generated
-	version.
-
-1999-05-20  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* Moved files to CVS trunk.
-
-1999-05-19  Jesper Skov  <jskov@cygnus.co.uk>
-
-	* src/edk.S (_hal_hardware_init): Fix a few mistakes.
-
-	* include/plf_stub.h: Enable led in stub init.
-
-	* include/pkgconf/mlt_sh_edk_stubs.ldi: 
-	* include/pkgconf/mlt_sh_edk_rom.ldi: 
-	Added.
-	Moved RAM region to the end of the chunk and made it bigger.
-	
-	* src/edk.S (_hal_hardware_init): Added Bus State Controller
-	initialization.
-
-1999-05-19  Jesper Skov  <jskov@cygnus.co.uk>
-
-        * Most things working now. Will start keeping track of changes.
-	
-1999-04-22  Jesper Skov  <jskov@lassi.cygnus.co.uk>
-
-	* Set up directory structure.
-
-//===========================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//===========================================================================
deleted file mode 100644
--- a/packages/hal/sh/edk/current/cdl/hal_sh_edk7708.cdl
+++ /dev/null
@@ -1,312 +0,0 @@
-# ====================================================================
-#
-#      hal_sh_edk7708.cdl
-#
-#      EDK7708 board HAL package configuration data
-#
-# ====================================================================
-#####COPYRIGHTBEGIN####
-#                                                                          
-# -------------------------------------------                              
-# The contents of this file are subject to the Red Hat eCos Public License 
-# Version 1.1 (the "License"); you may not use this file except in         
-# compliance with the License.  You may obtain a copy of the License at    
-# http://www.redhat.com/                                                   
-#                                                                          
-# Software distributed under the License is distributed on an "AS IS"      
-# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-# License for the specific language governing rights and limitations under 
-# the License.                                                             
-#                                                                          
-# The Original Code is eCos - Embedded Configurable Operating System,      
-# released September 30, 1998.                                             
-#                                                                          
-# The Initial Developer of the Original Code is Red Hat.                   
-# Portions created by Red Hat are                                          
-# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-# All Rights Reserved.                                                     
-# -------------------------------------------                              
-#                                                                          
-#####COPYRIGHTEND####
-# ====================================================================
-######DESCRIPTIONBEGIN####
-#
-# Author(s):      jskov
-# Original data:  jskov
-# Contributors:
-# Date:           1999-10-29
-#
-#####DESCRIPTIONEND####
-#
-# ====================================================================
-
-cdl_package CYGPKG_HAL_SH_EDK7708 {
-    display       "Hitachi EDK/SH7708 board"
-    parent        CYGPKG_HAL_SH
-    requires      CYGPKG_HAL_SH_7708
-    define_header hal_sh_edk7708.h
-    include_dir   cyg/hal
-    description   "
-        The edk HAL package provides the support needed to run
-        eCos on a Hitachi SH3 EDK7708 board."
-
-    compile       hal_diag.c plf_misc.c
-
-    implements    CYGINT_HAL_DEBUG_GDB_STUBS
-    implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
-    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
-
-    define_proc {
-        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_sh.h>"
-        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_sh_edk7708.h>"
-
-        puts $::cdl_header "#define CYGNUM_HAL_SH_SH3_SCI_PORTS 1"
-        puts $::cdl_header "#define CYGHWR_HAL_VSR_TABLE 0x08000000"
-        puts $::cdl_header "#define CYGHWR_HAL_VECTOR_TABLE 0x08000100"
-    }
-
-    cdl_component CYG_HAL_STARTUP {
-        display       "Startup type"
-        flavor        data
-        legal_values  {"RAM" "ROM" "ROMRAM"}
-        default_value {"RAM"}
-	no_define
-	define -file system.h CYG_HAL_STARTUP
-        description   "
-           When targetting the EDK7708 board it is possible to build
-           the system for either RAM bootstrap or ROM bootstrap.
-           RAM bootstrap generally requires that the board
-           is equipped with ROMs containing a suitable ROM monitor or
-           equivalent software that allows GDB to download the eCos
-           application on to the board. The ROM bootstrap typically
-           requires that the eCos application be blown into EPROMs or
-           equivalent technology.  ROMRAM bootstrap is similar to ROM
-           bootstrap, but everything is copied to RAM before execution 
-           starts thus improving performace, but at the cost of an
-           increased RAM footprint."
-    }
-
-    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
-        display      "Number of communication channels on the board"
-        flavor       data
-        calculated   1
-    }
-
-    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
-        display          "Debug serial port"
-        flavor data
-        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-        default_value    0
-        description      "
-           The EDK/7708 board has only one serial port. This option
-           chooses which port will be used to connect to a host
-           running GDB."
-    }
-
-    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
-        display          "Diagnostic serial port"
-        flavor data
-        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
-        default_value    0
-        description      "
-           The EDK/7708 board has only one serial port.  This option
-           chooses which port will be used for diagnostic output."
-    }
-
-    cdl_component CYGHWR_HAL_SH_PLF_CLOCK_SETTINGS {
-        display          "SH on-chip platform clock controls"
-        description      "
-            The various clocks used by the system are derived from
-            these options."
-        flavor        none
-        no_define
-                     
-        cdl_option CYGHWR_HAL_SH_OOC_XTAL {
-            display          "SH clock crystal"
-            flavor           data
-            legal_values     8000000 to 50000000
-            default_value    15000000
-            no_define
-            description      "
-                This option specifies the frequency of the crystal all
-                other clocks are derived from."
-        }
-
-        cdl_option CYGHWR_HAL_SH_OOC_PLL_1 {
-            display          "SH clock PLL circuit 1"
-            flavor           data
-            default_value    1
-            legal_values     { 0 1 2 4 }
-            description      "
-                This selects the multiplication factor provided by
-                PLL1. If PLL1 is disabled via CAP1, this option should
-                be set to zero."
-        }
-
-        cdl_option CYGHWR_HAL_SH_OOC_PLL_2 {
-            display          "SH clock PLL circuit 2"
-            flavor           data
-            default_value    4
-            legal_values     { 0 1 4 }
-            no_define
-            description      "
-                This selects the multiplication factor provided by
-                PLL2. If PLL2 is disabled via CAP2, this option should
-                be set to zero."
-        }
-
-        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_1 {
-            display          "SH clock divider 1"
-            flavor           data
-            default_value    1
-            legal_values     { 1 2 3 4 }
-            description      "
-                This divider option affects the CPU core clock."
-        }
-
-        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_2 {
-            display          "SH clock divider 2"
-            flavor           data
-            default_value    4
-            legal_values     { 1 2 3 4 }
-            description      "
-                This divider option affects the peripheral clock."
-        }
-
-        cdl_option CYGHWR_HAL_SH_OOC_CLOCK_MODE {
-            display          "SH clock mode"
-            flavor           data
-            default_value    2
-            legal_values     { 0 1 2 3 4 7 }
-            description      "
-                This option must mirror the clock mode hardwired on
-                the MD0-MD2 pins of the CPU in order to correctly
-                initialize the FRQCR register."
-        }
-    }
-
-    cdl_component CYGBLD_GLOBAL_OPTIONS {
-        display "Global build options"
-        flavor  none
-        parent  CYGPKG_NONE
-        no_define
-        description   "
-	    Global build options including control over
-	    compiler flags, linker flags and choice of toolchain."
-
-
-        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
-            display "Global command prefix"
-            flavor  data
-            no_define
-            default_value { "sh-elf" }
-            description "
-                This option specifies the command prefix used when
-                invoking the build tools."
-        }
-
-        cdl_option CYGBLD_GLOBAL_CFLAGS {
-            display "Global compiler flags"
-            flavor  data
-            no_define
-              default_value { CYGHWR_HAL_SH_BIGENDIAN ? "-mb -m3 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : "-ml -m3 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
-            description   "
-                This option controls the global compiler flags which
-                are used to compile all packages by
-                default. Individual packages may define
-                options which override these global flags."
-        }
-
-        cdl_option CYGBLD_GLOBAL_LDFLAGS {
-            display "Global linker flags"
-            flavor  data
-            no_define
-            default_value { CYGHWR_HAL_SH_BIGENDIAN ? "-mb -m3 -nostdlib -Wl,--gc-sections -Wl,-static" : "-ml -m3 -nostdlib -Wl,--gc-sections -Wl,-static" }
-            description   "
-                This option controls the global linker flags. Individual
-                packages may define options which override these global flags."
-        }
-
-        cdl_option CYGBLD_BUILD_GDB_STUBS {
-            display "Build GDB stub ROM image"
-            default_value 0
-            requires { CYG_HAL_STARTUP == "ROM" }
-            requires CYGSEM_HAL_ROM_MONITOR
-            requires CYGBLD_BUILD_COMMON_GDB_STUBS
-            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-            requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
-            requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-            no_define
-            description "
-                This option enables the building of the GDB stubs for the
-                board. The common HAL controls takes care of most of the
-                build process, but the final conversion from ELF image to
-                binary data is handled by the platform CDL, allowing
-                relocation of the data if necessary."
-
-            make -priority 320 {
-                <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
-                $(OBJCOPY) -O binary $< $@
-            }
-        }
-    }
-
-    cdl_component CYGHWR_MEMORY_LAYOUT {
-        display "Memory layout"
-        flavor data
-        no_define
-        calculated { CYG_HAL_STARTUP == "RAM" ? "sh_edk7708_ram" : \
-                     CYG_HAL_STARTUP == "ROM" ? "sh_edk7708_rom" : \
-                                                "sh_edk7708_romram" }
-
-        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
-            display "Memory layout linker script fragment"
-            flavor data
-            no_define
-            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
-            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_sh_edk7708_ram.ldi>" : \
-                         CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_sh_edk7708_rom.ldi>" : \
-                                                    "<pkgconf/mlt_sh_edk7708_romram.ldi>" }
-        }
-
-        cdl_option CYGHWR_MEMORY_LAYOUT_H {
-            display "Memory layout header file"
-            flavor data
-            no_define
-            define -file system.h CYGHWR_MEMORY_LAYOUT_H
-            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_sh_edk7708_ram.h>" : \
-                         CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_sh_edk7708_rom.h>" : \
-                                                    "<pkgconf/mlt_sh_edk7708_romram.h>" }
-        }
-    }
-
-    cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
-        display       "Work with a ROM monitor"
-        flavor        booldata
-        legal_values  { "GDB_stubs" }
-        default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
-        requires      { CYG_HAL_STARTUP == "RAM" }
-        parent        CYGPKG_HAL_ROM_MONITOR
-        description   "
-            Support can be enabled for boot ROMs or ROM monitors which contain
-            GDB stubs. This support changes various eCos semantics such as
-            the encoding of diagnostic output, and the overriding of hardware
-            interrupt vectors."
-    }
-
-    cdl_option CYGSEM_HAL_ROM_MONITOR {
-        display       "Behave as a ROM monitor"
-        flavor        bool
-        default_value 0
-        parent        CYGPKG_HAL_ROM_MONITOR
-        requires      { CYG_HAL_STARTUP == "ROM" }
-        description   "
-            Enable this option if this program is to be used as a ROM monitor,
-            i.e. applications will be loaded into RAM on the board, and this
-            ROM monitor may process exceptions or interrupts generated from the
-            application. This enables features such as utilizing a separate
-            interrupt stack when exceptions are generated."
-    }
-}
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/hal_diag.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#ifndef CYGONCE_HAL_HAL_DIAG_H
-#define CYGONCE_HAL_HAL_DIAG_H
-
-//=============================================================================
-//
-//      hal_diag.h
-//
-//      HAL Support for Kernel Diagnostic Routines
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        1999-04-24
-// Purpose:     HAL Support for Kernel Diagnostic Routines
-// Description: Diagnostic routines for use during kernel development.
-// Usage:       #include <cyg/hal/hal_diag.h>
-//
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/hal.h>
-
-#include <cyg/infra/cyg_type.h>
-
-#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
-
-#include <cyg/hal/hal_if.h>
-
-#define HAL_DIAG_INIT() hal_if_diag_init()
-#define HAL_DIAG_WRITE_CHAR(_c_) hal_if_diag_write_char(_c_)
-#define HAL_DIAG_READ_CHAR(_c_) hal_if_diag_read_char(&_c_)
-
-#else // everything by steam
-
-//-----------------------------------------------------------------------------
-// functions implemented in hal_diag.c
-
-externC void hal_diag_init(void);
-
-externC void hal_diag_write_char(char c);
-
-externC void hal_diag_read_char(char *c);
-
-//-----------------------------------------------------------------------------
-
-#define HAL_DIAG_INIT() hal_diag_init()
-
-#define HAL_DIAG_WRITE_CHAR(_c_) hal_diag_write_char(_c_)
-
-#define HAL_DIAG_READ_CHAR(_c_) hal_diag_read_char(&_c_)
-
-#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
-
-//-----------------------------------------------------------------------------
-// Simple LED control.
-externC void hal_diag_led_on( void );
-externC void hal_diag_led_off( void );
-
-//-----------------------------------------------------------------------------
-// end of hal_diag.h
-#endif // CYGONCE_HAL_HAL_DIAG_H
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_ram.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// eCos memory layout - Fri Oct 20 09:50:36 2000
-
-// This is a generated file - do not edit
-
-#ifndef __ASSEMBLER__
-#include <cyg/infra/cyg_type.h>
-#include <stddef.h>
-
-#endif
-#define CYGMEM_REGION_ram (0x8008000)
-#define CYGMEM_REGION_ram_SIZE (0xf8000)
-#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
-#ifndef __ASSEMBLER__
-extern char CYG_LABEL_NAME (__heap1) [];
-#endif
-#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
-#define CYGMEM_SECTION_heap1_SIZE (0x8100000 - (size_t) CYG_LABEL_NAME (__heap1))
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_ram.ldi
+++ /dev/null
@@ -1,26 +0,0 @@
-// eCos memory layout - Fri Oct 20 09:50:36 2000
-
-// This is a generated file - do not edit
-
-#include <cyg/infra/cyg_type.inc>
-
-MEMORY
-{
-    ram : ORIGIN = 0x8008000, LENGTH = 0xf8000
-}
-
-SECTIONS
-{
-    SECTIONS_BEGIN
-    SECTION_vectors (ram, 0x8008000, LMA_EQ_VMA)
-    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
-    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
-    SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
-    SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
-    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
-    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
-    SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
-    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
-    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
-    SECTIONS_END
-}
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_ram.mlt
+++ /dev/null
@@ -1,12 +0,0 @@
-version 0
-region ram 8008000 f8000 0 !
-section vectors 0 1 0 1 1 1 1 1 8008000 8008000 text text !
-section text 0 4 0 1 0 1 0 1 fini fini !
-section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
-section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
-section rodata 0 8 0 1 0 1 0 1 fixup fixup !
-section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
-section gcc_except_table 0 1 0 1 0 1 0 1 data data !
-section data 0 8 0 1 0 1 0 1 bss bss !
-section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
-section heap1 0 8 0 0 0 0 0 0 !
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_rom.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// eCos memory layout - Fri Oct 20 09:51:04 2000
-
-// This is a generated file - do not edit
-
-#ifndef __ASSEMBLER__
-#include <cyg/infra/cyg_type.h>
-#include <stddef.h>
-
-#endif
-#define CYGMEM_REGION_ram (0x8000200)
-#define CYGMEM_REGION_ram_SIZE (0xffe00)
-#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
-#define CYGMEM_REGION_rom (0xa0000000)
-#define CYGMEM_REGION_rom_SIZE (0x20000)
-#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
-#ifndef __ASSEMBLER__
-extern char CYG_LABEL_NAME (__heap1) [];
-#endif
-#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
-#define CYGMEM_SECTION_heap1_SIZE (0x8100000 - (size_t) CYG_LABEL_NAME (__heap1))
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_rom.ldi
+++ /dev/null
@@ -1,27 +0,0 @@
-// eCos memory layout - Fri Oct 20 09:51:04 2000
-
-// This is a generated file - do not edit
-
-#include <cyg/infra/cyg_type.inc>
-
-MEMORY
-{
-    ram : ORIGIN = 0x8000200, LENGTH = 0xffe00
-    rom : ORIGIN = 0xa0000000, LENGTH = 0x20000
-}
-
-SECTIONS
-{
-    SECTIONS_BEGIN
-    SECTION_vectors (rom, 0xa0000000, LMA_EQ_VMA)
-    SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
-    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
-    SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA)
-    SECTION_rodata (rom, ALIGN (0x8), LMA_EQ_VMA)
-    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
-    SECTION_gcc_except_table (rom, ALIGN (0x1), LMA_EQ_VMA)
-    SECTION_data (ram, 0x8000200, FOLLOWING (.gcc_except_table))
-    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
-    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
-    SECTIONS_END
-}
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_rom.mlt
+++ /dev/null
@@ -1,13 +0,0 @@
-version 0
-region ram 8000200 ffe00 0 !
-region rom a0000000 20000 1 !
-section data 0 1 1 1 1 1 0 0 8000200 bss !
-section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
-section heap1 0 8 0 0 0 0 0 0 !
-section vectors 0 1 0 1 1 1 1 1 a0000000 a0000000 text text !
-section text 0 4 0 1 0 1 0 1 fini fini !
-section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
-section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
-section rodata 0 8 0 1 0 1 0 1 fixup fixup !
-section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
-section gcc_except_table 0 1 0 1 0 0 0 1 data !
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_romram.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// eCos memory layout - Fri Oct 20 09:51:30 2000
-
-// This is a generated file - do not edit
-
-#ifndef __ASSEMBLER__
-#include <cyg/infra/cyg_type.h>
-#include <stddef.h>
-
-#endif
-#define CYGMEM_REGION_ram (0x8000200)
-#define CYGMEM_REGION_ram_SIZE (0xffe00)
-#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
-#define CYGMEM_REGION_rom (0xa0000000)
-#define CYGMEM_REGION_rom_SIZE (0x20000)
-#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
-#ifndef __ASSEMBLER__
-extern char CYG_LABEL_NAME (__heap1) [];
-#endif
-#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
-#define CYGMEM_SECTION_heap1_SIZE (0x8100000 - (size_t) CYG_LABEL_NAME (__heap1))
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_romram.ldi
+++ /dev/null
@@ -1,27 +0,0 @@
-// eCos memory layout - Fri Oct 20 09:51:30 2000
-
-// This is a generated file - do not edit
-
-#include <cyg/infra/cyg_type.inc>
-
-MEMORY
-{
-    ram : ORIGIN = 0x8000200, LENGTH = 0xffe00
-    rom : ORIGIN = 0xa0000000, LENGTH = 0x20000
-}
-
-SECTIONS
-{
-    SECTIONS_BEGIN
-    SECTION_vectors (ram, 0x8000200, AT (0xa0000000))
-    SECTION_text (ram, ALIGN (0x10), FOLLOWING (.vectors))
-    SECTION_fini (ram, ALIGN (0x10), FOLLOWING (.text))
-    SECTION_rodata1 (ram, ALIGN (0x10), FOLLOWING (.fini))
-    SECTION_rodata (ram, ALIGN (0x10), FOLLOWING (.rodata1))
-    SECTION_fixup (ram, ALIGN (0x10), FOLLOWING (.rodata))
-    SECTION_gcc_except_table (ram, ALIGN (0x10), FOLLOWING (.fixup))
-    SECTION_data (ram, ALIGN (0x10), FOLLOWING (.gcc_except_table))
-    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
-    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
-    SECTIONS_END
-}
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/pkgconf/mlt_sh_edk7708_romram.mlt
+++ /dev/null
@@ -1,13 +0,0 @@
-version 0
-region ram 8000200 ffe00 0 !
-region rom a0000000 20000 1 !
-section vectors 0 10 1 1 1 1 1 1 8000200 a0000000 text text !
-section text 0 10 1 1 0 1 0 1 fini fini !
-section fini 0 10 1 1 0 1 0 1 rodata1 rodata1 !
-section rodata1 0 10 1 1 0 1 0 1 rodata rodata !
-section rodata 0 10 1 1 0 1 0 1 fixup fixup !
-section fixup 0 10 1 1 0 1 0 1 gcc_except_table gcc_except_table !
-section gcc_except_table 0 10 1 1 0 1 0 1 data data !
-section data 0 10 1 1 0 1 0 0 bss !
-section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
-section heap1 0 8 0 0 0 0 0 0 !
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/platform.inc
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef CYGONCE_HAL_PLATFORM_INC
-#define CYGONCE_HAL_PLATFORM_INC
-##=============================================================================
-##
-##	platform.inc
-##
-##	SH/EDK7708 board assembler header file
-##
-##=============================================================================
-#####COPYRIGHTBEGIN####
-#                                                                          
-# -------------------------------------------                              
-# The contents of this file are subject to the Red Hat eCos Public License 
-# Version 1.0 (the "License"); you may not use this file except in         
-# compliance with the License.  You may obtain a copy of the License at    
-# http://sourceware.cygnus.com/ecos                                        
-#                                                                          
-# Software distributed under the License is distributed on an       
-# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-# License for the specific language governing rights and limitations under 
-# the License.                                                             
-#                                                                          
-# The Original Code is eCos - Embedded Configurable Operating System,      
-# released September 30, 1998.                                             
-#                                                                          
-# The Initial Developer of the Original Code is Red Hat.                   
-# Portions created by Red Hat are                                          
-# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-# All Rights Reserved.                                                     
-# -------------------------------------------                              
-#                                                                          
-#####COPYRIGHTEND####
-##=============================================================================
-#######DESCRIPTIONBEGIN####
-##
-## Author(s): 	jskov
-## Contributors:jskov
-## Date:	2000-02-02
-## Purpose:	SH/EDK7708 board definitions.
-## Description:	This file contains various definitions and macros that are
-##              useful for writing assembly code for the SH/EDK7708 board.
-## Usage:
-##		#include <cyg/hal/platform.inc>
-##		...
-##		
-##
-######DESCRIPTIONEND####
-##
-##=============================================================================
-
-#include <pkgconf/hal.h>
-
-#include <cyg/hal/sh_regs.h>
-#include <cyg/hal/sh_offsets.inc>
-
-#------------------------------------------------------------------------------
-# Hardware initialization.
-
-        .macro  hal_hardware_init
-        // Set up the Bus State Controller
-        mova     BSC_settings_table,r0
-        mov      r0,r3
-1:      mov.w    @r3+,r0                // Address (or zero)
-        cmp/eq   #0,r0
-        bt       2f
-        mov.w    @r3+,r1                // data
-        bra      1b
-         mov.w    r1,@r0                // delay slot
-
-        .align  2
-BSC_settings_table:
-        # These are the settings set by the Hitachi ROM Monitor.
-
-	.word   CYGARC_REG_FRQCR
-	.word   CYGARC_REG_FRQCR_INIT
-
-        # BCR2: Bus size of areas 1-6 to 32 bits
-        .word   CYGARC_REG_BCR2
-        .word   0x3ffc
-        # BCR1: Areas 2 and 3 are SDRAM
-        .word   CYGARC_REG_BCR1
-        .word   0x080c
-        # BCR2: Bus size of areas 1-6 to 32 bits [note: second write!]
-        .word   CYGARC_REG_BCR2
-        .word   0x3ffc
-        # WCR1: 3 wait-state cycles inserted for all areas
-        .word   CYGARC_REG_WCR1
-        .word   0x3fff
-        # WCR2: extra wait states and full pitch for burst
-        .word   CYGARC_REG_WCR2
-        .word   0xffd7
-        # MCR: RAS/CAS & burst timing area 2/3
-        .word   CYGARC_REG_MCR
-        .word   0x963c
-        # RTCNT: refresh counter (needs a5 in top byte to accept write)
-        .word   CYGARC_REG_RTCNT
-        .word   (0xa500 | 0x0000)
-        # RTCOR: refresh time constant (needs a5 in top byte to accept write)
-        .word   CYGARC_REG_RTCOR
-        .word   (0xa500 | 0x003b)
-        # RFCR:  refresh count register (needs a4 in top byte to accept write)
-        .word   CYGARC_REG_RFCR
-        .word   (0xa400 | 0x0000)
-        # RTCSR: refresh timer control (needs a5 in top byte to accept write)
-        .word   CYGARC_REG_RTCSR
-        .word   (0xa500 | 0x0008)
-
-        # Set SDMR to 0x220
-        .word    0xd880
-        .word    0       
-        
-        # Table end
-        .word   0
-
-        .align  2
-2:      
-        .endm
-
-#------------------------------------------------------------------------------
-# Monitor initialization.
-
-#ifndef CYGPKG_HAL_SH_MON_DEFINED
-
-#if	!defined(CYG_HAL_STARTUP_RAM) ||		\
-	(	defined(CYG_HAL_STARTUP_RAM) &&		\
-		!defined(CYGSEM_HAL_USE_ROM_MONITOR))
-
-	# If we are not starting up from RAM, or we are starting in
-	# RAM and NOT using a ROM monitor, initialize the VSR table.
-
-	.macro	hal_mon_init
-        mov.l   $_hal_vsr_table_p,r3
-	# Write exception vectors
-	mov.l   $_cyg_hal_default_exception_vsr_p,r4
-	mov     #CYGNUM_HAL_VSR_EXCEPTION_COUNT,r5
-1:	mov.l   r4,@r3
-        add     #4,r3
-	dt	r5
-	bf	1b
-	# Write interrupt vector
-	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
-	mov.l   r4,@r3
-	bra	2f
-	 nop
-        .align  2
-
-$_cyg_hal_default_exception_vsr_p:
-	.long	_cyg_hal_default_exception_vsr
-$_cyg_hal_default_interrupt_vsr_p:
-	.long	_cyg_hal_default_interrupt_vsr
-
-	.extern _hal_vsr_table
-$_hal_vsr_table_p:
-	.long _hal_vsr_table
-
-2:
-	.endm
-
-#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
-
-	# Initialize the VSR table entries
-	# We only take control of the interrupt vector,
-	# the rest are left to the ROM for now...
-
-	.macro	hal_mon_init
-	# Write interrupt vector
-        mov.l   $_hal_vsr_table_p,r3
-	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
-	mov.l   r4,@r3
-	bra	2f
-	 nop
-        .align  2
-
-$_cyg_hal_default_interrupt_vsr_p:
-	.long	_cyg_hal_default_interrupt_vsr
-
-	.extern _hal_vsr_table
-$_hal_vsr_table_p:
-	.long _hal_vsr_table+CYGNUM_HAL_VECTOR_INTERRUPT*4
-
-2:
-	.endm
-
-#else
-
-	.macro	hal_mon_init
-	.endm
-
-#endif
-
-
-#define CYGPKG_HAL_SH_MON_DEFINED
-
-#endif // CYGPKG_HAL_SH_MON_DEFINED
-
-#endif // CYGONCE_HAL_PLATFORM_INC
deleted file mode 100644
--- a/packages/hal/sh/edk/current/include/plf_stub.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#ifndef CYGONCE_HAL_PLF_STUB_H
-#define CYGONCE_HAL_PLF_STUB_H
-
-//=============================================================================
-//
-//      plf_stub.h
-//
-//      Platform header for GDB stub support.
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):   jskov
-// Contributors:jskov
-// Date:        1999-05-18
-// Purpose:     Platform HAL stub support for Hitachi/EDK boards.
-// Usage:       #include <cyg/hal/plf_stub.h>
-//              
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/system.h>
-#include <pkgconf/hal.h>
-
-#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-
-#include <cyg/infra/cyg_type.h>         // CYG_UNUSED_PARAM, externC
-
-#include <cyg/hal/sh_stub.h>            // architecture stub support
-
-#include <cyg/hal/hal_diag.h>           // hal_diag_led_on
-
-//----------------------------------------------------------------------------
-// Define some platform specific communication details. This is mostly
-// handled by hal_if now, but we need to make sure the comms tables are
-// properly initialized.
-
-externC void cyg_hal_plf_comms_init(void);
-
-#define HAL_STUB_PLATFORM_INIT_SERIAL()       cyg_hal_plf_comms_init()
-
-#define HAL_STUB_PLATFORM_SET_BAUD_RATE(baud) CYG_UNUSED_PARAM(int, (baud))
-#define HAL_STUB_PLATFORM_INTERRUPTIBLE       0
-
-//----------------------------------------------------------------------------
-// Stub initializer.
-#ifdef CYGSEM_HAL_ROM_MONITOR
-# define HAL_STUB_PLATFORM_INIT()              hal_diag_led_on()
-#else
-# define HAL_STUB_PLATFORM_INIT()              CYG_EMPTY_STATEMENT
-#endif
-
-#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-
-//----------------------------------------------------------------------------
-// Reset.
-// Block interrupts and cause an exception. This forces a reset.
-#define HAL_STUB_PLATFORM_RESET() \
-    asm volatile ("ldc %0,sr;trapa #0x00;" : : "r" (CYGARC_REG_SR_BL))
-
-#define HAL_STUB_PLATFORM_RESET_ENTRY 0xa0000000
-    
-//-----------------------------------------------------------------------------
-#endif // CYGONCE_HAL_PLF_STUB_H
-// End of plf_stub.h
deleted file mode 100644
--- a/packages/hal/sh/edk/current/misc/STUBS_config
+++ /dev/null
@@ -1,84 +0,0 @@
-#! /bin/sh
-# Configure SH/edk7708 eCos to create EDK7708 GDB stubs
-# Ensure that PATH include the directory where the SH tools reside.
-#
-# Run from an empty temporary directory with one argument: the path to
-# the packages directory (i.e., where pkgconf.tcl lives).
-#
-# Output will be ./stubrom.bin which is suitable for burning into ROM.
-
-if ( echo | tclsh ) 2>/dev/null ; then
-  TCL=tclsh
-elif ( echo | cygtclsh80 ) 2>/dev/null ; then
-  TCL=cygtclsh80
-else
-  echo Could not find TCL interpreter
-  exit 1
-fi
-
-$TCL $1/pkgconf.tcl                                                    \
-   --target=sh --platform=edk7708 --startup=rom                        \
-   --disable CYGPKG_KERNEL --disable CYGPKG_UITRON                     \
-   --disable CYGPKG_LIBC --disable CYGPKG_LIBM                         \
-   --disable CYGPKG_ERROR --disable CYGPKG_IO                          \
-   --disable CYGPKG_IO_SERIAL --disable CYGPKG_DEVICES_WALLCLOCK       \
-   --disable CYGPKG_DEVICES_WATCHDOG
-
-patch <<END_OF_PATCH -p0
---- pkgconf/hal.h.orig	Thu Feb 10 09:05:07 2000
-+++ pkgconf/hal.h	Thu Feb 10 09:04:56 2000
-@@ -122,7 +122,7 @@
-  }
- 
-  }}CFG_DATA */
--#define CYGFUN_HAL_COMMON_KERNEL_SUPPORT
-+#undef  CYGFUN_HAL_COMMON_KERNEL_SUPPORT
- #undef  CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
- 
- #ifdef CYGDBG_HAL_DIAG_DISABLE_GDB_PROTOCOL
-@@ -243,7 +243,7 @@
- #define CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK
- #define CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE 4096
- #undef  CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
--#define CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
-+#undef  CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
- #undef  CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
- #undef  CYGIMP_HAL_COMMON_INTERRUPTS_IGNORE_SPURIOUS
- 
-@@ -272,7 +272,7 @@
-  }
-  
-  }}CFG_DATA */
--#define CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
-+#undef  CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
- 
- /* {{CFG_DATA
- 
-@@ -423,10 +423,10 @@
- 
-    }}CFG_DATA */
- 
--#undef   CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-+#define  CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
- #undef   CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
--#define  CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
--#define  CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
-+#undef   CYGDBG_HAL_DEBUG_GDB_CTRLC_SUPPORT
-+#undef   CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
- 
- /*
-  * NOTE:
-@@ -522,7 +522,7 @@
-
- 
- /* Enable this when configuring as a ROM monitor (i.e., stub) */
--#undef  CYGSEM_HAL_ROM_MONITOR
-+#define CYGSEM_HAL_ROM_MONITOR
- 
- #include CYGBLD_HAL_TARGET_H
- #include CYGBLD_HAL_PLATFORM_H 
-END_OF_PATCH
-
-make
-make -C hal/common/current/src/stubrom
-sh-elf-objcopy -O binary hal/common/current/src/stubrom/stubrom stubrom.bin
deleted file mode 100644
--- a/packages/hal/sh/edk/current/src/edk.S
+++ /dev/null
@@ -1,117 +0,0 @@
-##=============================================================================
-##
-##      edk.S
-##
-##      EDK board hardware setup
-##
-##=============================================================================
-#####COPYRIGHTBEGIN####
-#                                                                          
-# -------------------------------------------                              
-# The contents of this file are subject to the Red Hat eCos Public License 
-# Version 1.1 (the "License"); you may not use this file except in         
-# compliance with the License.  You may obtain a copy of the License at    
-# http://www.redhat.com/                                                   
-#                                                                          
-# Software distributed under the License is distributed on an "AS IS"      
-# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-# License for the specific language governing rights and limitations under 
-# the License.                                                             
-#                                                                          
-# The Original Code is eCos - Embedded Configurable Operating System,      
-# released September 30, 1998.                                             
-#                                                                          
-# The Initial Developer of the Original Code is Red Hat.                   
-# Portions created by Red Hat are                                          
-# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-# All Rights Reserved.                                                     
-# -------------------------------------------                              
-#                                                                          
-#####COPYRIGHTEND####
-##=============================================================================
-#######DESCRIPTIONBEGIN####
-##
-## Author(s):   jskov
-## Contributors:jskov
-## Date:        1999-05-03
-## Purpose:     EDK7708 board hardware setup
-## Description: This file contains any code needed to initialize the
-##              hardware on a Hitachi SH3 EDK7708 board.
-##
-######DESCRIPTIONEND####
-##
-##=============================================================================
-
-#include <pkgconf/hal.h>
-#include <cyg/hal/sh_regs.h>
-
-        .globl  _hal_hardware_init
-_hal_hardware_init:
-
-        // Set up the Bus State Controller
-        mov.l    $BSC_settings_table,r3
-1:      mov.w    @r3+,r0                // Address (or zero)
-        cmp/eq   #0,r0
-        bt       2f
-        mov.w    @r3+,r1                // data
-        bra      1b
-         mov.w    r1,@r0                // delay slot
-
-2:
-        rts
-         nop
-
-        .align  2
-$BSC_settings_table:
-        .long   BSC_settings_table
-BSC_settings_table:
-        # These are the settings set by the Hitachi ROM Monitor.
-
-        # BCR2: Bus size of areas 1-6 to 32 bits
-        .word   CYGARC_REG_BCR2
-        .word   0x3ffc
-        # BCR1: Areas 2 and 3 are SDRAM
-        .word   CYGARC_REG_BCR1
-        .word   0x080c
-        # BCR2: Bus size of areas 1-6 to 32 bits [note: second write!]
-        .word   CYGARC_REG_BCR2
-        .word   0x3ffc
-        # WCR1: 3 wait-state cycles inserted for all areas
-        .word   CYGARC_REG_WCR1
-        .word   0x3fff
-        # WCR2: extra wait states and full pitch for burst
-        .word   CYGARC_REG_WCR2
-        .word   0xffd7
-        # MCR: RAS/CAS & burst timing area 2/3
-        .word   CYGARC_REG_MCR
-        .word   0x963c
-#if 0
-        # DCR: RAS/CAS & burst timing area 2
-        .word   CYGARC_REG_DCR
-        .word   0x0000
-        # PCR: PCMCIA disabled
-        .word   CYGARC_REG_PCR
-        .word   0x0000
-#endif
-        # RTCNT: refresh counter (needs a5 in top byte to accept write)
-        .word   CYGARC_REG_RTCNT
-        .word   (0xa500 | 0x0000)
-        # RTCOR: refresh time constant (needs a5 in top byte to accept write)
-        .word   CYGARC_REG_RTCOR
-        .word   (0xa500 | 0x003b)
-        # RFCR:  refresh count register (needs a4 in top byte to accept write)
-        .word   CYGARC_REG_RFCR
-        .word   (0xa400 | 0x0000)
-        # RTCSR: refresh timer control (needs a5 in top byte to accept write)
-        .word   CYGARC_REG_RTCSR
-        .word   (0xa500 | 0x0008)
-
-        # Set SDMR to 0x220
-        .word    0xd880
-        .word    0       
-        
-        # Table end
-        .word   0
-
-#------------------------------------------------------------------------------
-# end of edk.S
deleted file mode 100644
--- a/packages/hal/sh/edk/current/src/hal_diag.c
+++ /dev/null
@@ -1,219 +0,0 @@
-//=============================================================================
-//
-//      hal_diag.c
-//
-//      HAL diagnostic output code
-//
-//=============================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//=============================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):    nickg, jskov
-// Contributors: nickg, jskov
-// Date:         1999-03-23
-// Purpose:      HAL diagnostic output
-// Description:  Implementations of HAL diagnostic output support.
-//
-//####DESCRIPTIONEND####
-//
-//=============================================================================
-
-#include <pkgconf/hal.h>
-
-#include <cyg/hal/hal_diag.h>           // our header.
-
-#include <cyg/infra/cyg_type.h>         // base types, externC
-#include <cyg/hal/hal_io.h>             // IO macros
-#include <cyg/hal/hal_if.h>             // Calling interface
-#include <cyg/hal/hal_intr.h>           // Interrupt macros
-#include <cyg/hal/sh3_sci.h>            // driver API
-#include <cyg/hal/hal_misc.h>           // Helper functions
-
-#define SCI_BASE ((cyg_uint8*)0xfffffe80)
-
-//-----------------------------------------------------------------------------
-
-#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
-    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
-
-void
-cyg_hal_plf_comms_init(void)
-{
-    static int initialized = 0;
-
-    if (initialized)
-        return;
-
-    initialized = 1;
-
-    cyg_hal_plf_sci_init(0, 0, CYGNUM_HAL_INTERRUPT_SCI_RXI, SCI_BASE);
-}
-
-#endif //  CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
-
-//=============================================================================
-// Led control
-//=============================================================================
-#define LED_ON   0x04000000
-#define LED_OFF  0x18000000
-
-void
-hal_diag_led_on( void )
-{
-    HAL_WRITE_UINT8(LED_ON, 0);
-}
-
-void
-hal_diag_led_off( void )
-{
-    HAL_WRITE_UINT8(LED_OFF, 0);
-}
-
-
-//=============================================================================
-// Compatibility with older stubs
-//=============================================================================
-
-#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
-
-static channel_data_t channel = { (cyg_uint8*)SCI_BASE, 0, 0};
-
-#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
-#include <cyg/hal/hal_stub.h>           // hal_output_gdb_string
-#endif
-
-#if defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs)
-
-#define CYG_HAL_DIAG_GDB
-
-#elif defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
-
-#define CYG_HAL_DIAG_GDB
-
-#endif
-
-//-----------------------------------------------------------------------------
-
-void hal_diag_init(void)
-{
-    cyg_hal_plf_sci_init_channel(&channel);
-}
-
-void 
-hal_diag_write_char_serial( char c )
-{
-    cyg_hal_plf_sci_putc(&channel, c);
-}
-
-void
-hal_diag_read_char(char *c)
-{
-    *c = (char) cyg_hal_plf_sci_getc(&channel);
-}
-
-// Packet function
-void 
-hal_diag_write_char(char c)
-{
-#ifdef CYG_HAL_DIAG_GDB
-    static char line[100];
-    static int pos = 0;
-
-    // No need to send CRs
-    if( c == '\r' ) return;
-
-    line[pos++] = c;
-
-    if( c == '\n' || pos == sizeof(line) )
-    {
-        CYG_INTERRUPT_STATE old;
-
-        // Disable interrupts. This prevents GDB trying to interrupt us
-        // while we are in the middle of sending a packet. The serial
-        // receive interrupt will be seen when we re-enable interrupts
-        // later.
-        
-#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-        CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION(old);
-#else
-        HAL_DISABLE_INTERRUPTS(old);
-#endif
-        
-        while(1)
-        {
-            char c1;
-            static char hex[] = "0123456789ABCDEF";
-            cyg_uint8 csum = 0;
-            int i;
-        
-            cyg_hal_plf_sci_putc(&channel, '$');
-            cyg_hal_plf_sci_putc(&channel, 'O');
-            csum += 'O';
-            for( i = 0; i < pos; i++ )
-            {
-                char ch = line[i];
-                char h = hex[(ch>>4)&0xF];
-                char l = hex[ch&0xF];
-                cyg_hal_plf_sci_putc(&channel, h);
-                cyg_hal_plf_sci_putc(&channel, l);
-                csum += h;
-                csum += l;
-            }
-            cyg_hal_plf_sci_putc(&channel, '#');
-            cyg_hal_plf_sci_putc(&channel, hex[(csum>>4)&0xF]);
-            cyg_hal_plf_sci_putc(&channel, hex[csum&0xF]);
-
-            // Wait for the ACK character '+' from GDB here and handle
-            // receiving a ^C instead.
-            c1 = (char) cyg_hal_plf_sci_getc(&channel);
-
-            if( c1 == '+' )
-                break;              // a good acknowledge
-
-            // Check for user break.
-            if( cyg_hal_is_break( &c1, 1 ) )
-                cyg_hal_user_break( NULL );
-
-            // otherwise, loop round again
-        }
-        
-        pos = 0;
-
-        // And re-enable interrupts
-#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
-        CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION(old);
-#else
-        HAL_RESTORE_INTERRUPTS(old);
-#endif
-    }
-#else // CYG_HAL_DIAG_GDB
-    cyg_hal_plf_sci_putc(&channel, c);
-#endif
-}
-#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
-
-//-----------------------------------------------------------------------------
-// End of hal_diag.c
deleted file mode 100644
--- a/packages/hal/sh/edk/current/src/plf_misc.c
+++ /dev/null
@@ -1,57 +0,0 @@
-//==========================================================================
-//
-//      plf_misc.c
-//
-//      HAL platform miscellaneous functions
-//
-//==========================================================================
-//####COPYRIGHTBEGIN####
-//                                                                          
-// -------------------------------------------                              
-// The contents of this file are subject to the Red Hat eCos Public License 
-// Version 1.1 (the "License"); you may not use this file except in         
-// compliance with the License.  You may obtain a copy of the License at    
-// http://www.redhat.com/                                                   
-//                                                                          
-// Software distributed under the License is distributed on an "AS IS"      
-// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
-// License for the specific language governing rights and limitations under 
-// the License.                                                             
-//                                                                          
-// The Original Code is eCos - Embedded Configurable Operating System,      
-// released September 30, 1998.                                             
-//                                                                          
-// The Initial Developer of the Original Code is Red Hat.                   
-// Portions created by Red Hat are                                          
-// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
-// All Rights Reserved.                                                     
-// -------------------------------------------                              
-//                                                                          
-//####COPYRIGHTEND####
-//==========================================================================
-//#####DESCRIPTIONBEGIN####
-//
-// Author(s):    jskov
-// Contributors: jskov,nickg, jlarmour
-// Date:         1999-10-13
-// Purpose:      HAL miscellaneous functions
-// Description:  This file contains miscellaneous functions provided by the
-//               HAL.
-//
-//####DESCRIPTIONEND####
-//
-//==========================================================================
-
-#include <pkgconf/hal.h>
-
-#include <cyg/hal/hal_if.h>             // interfacing API
-
-//--------------------------------------------------------------------------
-void
-hal_platform_init(void)
-{
-    hal_if_init();
-}
-
-//--------------------------------------------------------------------------
-// eof plf_misc.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/ChangeLog
@@ -0,0 +1,365 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* Moved HAL to edk7708.
+
+2000-10-31  Jesper Skov  <jskov@redhat.com>
+
+	* include/plf_intr.h: Added.
+	* include/plf_cache.h: Added.
+
+2000-10-20  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* include/pkgconf/mlt_sh_edk7708_ram.h:
+	* include/pkgconf/mlt_sh_edk7708_rom.h:
+	* include/pkgconf/mlt_sh_edk7708_romram.h:
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi:
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi:
+	* include/pkgconf/mlt_sh_edk7708_romram.ldi:
+	Regenerated with updated host tools
+
+2000-10-17  Jesper Skov  <jskov@redhat.com>
+
+	* include/pkgconf/mlt_sh_edk7708_ram.h: Adding heap1.
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_rom.h: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_rom.mlt: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_romram.h: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_romram.mlt: Ditto.
+	* include/pkgconf/mlt_sh_edk7708_romram.ldi: Ditto.
+
+2000-10-10  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Fix legal OCC ranges.
+
+2000-09-26  Jesper Skov  <jskov@redhat.com>
+
+	* include/platform.inc: Use calculated FRQCR init value.
+
+	* cdl/hal_sh_edk7708.cdl: Updated clock options.
+
+2000-07-07  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Require sub-variant package.
+
+2000-06-29  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: serial driver API changes.
+
+2000-06-28  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: Include hal_if file.
+	
+2000-06-28  Jesper Skov  <jskov@redhat.com>
+
+	* src/plf_misc.c: 
+	* src/hal_diag.c:
+	* src/plf_stub.c: [deleted]
+	* include/pkgconf/mlt_sh_edk7708_ram.h: 
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_rom.h: 
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_romram.h: 
+	* include/pkgconf/mlt_sh_edk7708_romram.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_romram.mlt: 
+	* include/plf_stub.h: 
+	* include/hal_diag.h: 
+	* cdl/hal_sh_edk7708.cdl: 
+	Changed to use virtual vector table.
+
+1999-06-19  John Dallaway  <jld@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Tidy display strings.
+
+2000-04-12  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: Output text raw if configuration requires it.
+
+	* include/platform.inc: 
+	* src/edk.S: [deleted]
+	* cdl/hal_sh_edk7708.cdl: 
+	Hardware init code moved to platform.inc in order to allow ROMRAM
+	startup.
+
+	* include/pkgconf/mlt_sh_edk7708_romram.h:
+	* include/pkgconf/mlt_sh_edk7708_romram.mlt:
+	* include/pkgconf/mlt_sh_edk7708_romram.ldi:
+	* cdl/hal_sh_edk7708.cdl: 
+	Add ROMRAM startup option.
+	
+2000-04-06  Jonathan Larmour  <jlarmour@redhat.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl: Use -g now that toolchains work with that
+	(and in fact new toolchains no longer work with -ggdb)
+
+2000-04-06  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Define vsr base location.
+
+2000-04-04  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c (hal_diag_write_char): Add GDB critical IO region
+	handling.
+
+2000-03-20  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Added board speed variable.
+
+2000-03-09  Jesper Skov  <jskov@redhat.com>
+
+	* src/hal_diag.c: Fix compiler warning.
+
+2000-02-28  Jesper Skov  <jskov@redhat.com>
+
+	* include/platform.inc: Use sh_offsets instead of C header.
+
+2000-02-18  Jonathan Larmour  <jlarmour@redhat.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl (CYGBLD_BUILD_GDB_STUBS): When
+	building stubs, define every dependency required here rather than
+	in the template
+
+2000-02-17  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: 
+	Go back to -ggdb. -gstabs don't provide enough info for
+	source-level debugging.
+	
+	* include/pkgconf/mlt_sh_edk7708_rom.h: 
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_ram.h: 
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt:
+	Don't use . assignment due to tools problem.
+	
+2000-02-16  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Added LE support.
+
+2000-02-15  Jesper Skov  <jskov@redhat.com>
+
+	* misc/STUBS_config:
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_ram.h: 
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt:
+	Updated for new stubs scheme.
+
+	* cdl/hal_sh_edk7708.cdl: Removed stubs startup.
+	Use -gstabs instead of -ggdb to work around problem with GDB.
+
+2000-02-10  Jesper Skov  <jskov@redhat.com>
+
+	* include/plf_stub.h: 
+	HAL_STUB_PLATFORM_STUBS_INIT->HAL_STUB_PLATFORM_INIT
+
+2000-02-07  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: use cpu flags when linking.
+
+2000-02-03  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Implements stubs.
+
+2000-01-27  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Moved part of stubs build rule to
+	common HAL.  Changed description.
+
+2000-01-26  Jesper Skov  <jskov@redhat.com>
+
+	* cdl/hal_sh_edk7708.cdl: Fix display string.
+
+2000-01-24  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl: Add stubs build rule.
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_ram.h:
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_stubs.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_stubs.h:
+	* include/pkgconf/mlt_sh_edk7708_stubs.mlt: 
+	Give stub more RAM.
+	
+2000-01-24  John Dallaway  <jld@cygnus.co.uk>
+
+	* cdl/*.cdl:
+
+	Remove obsolete option CYGTST_TESTING_IDENTIFIER.
+
+2000-01-19  Hugo Tyson  <hmt@cygnus.co.uk>
+
+	* cdl/*.cdl: Add descriptions to a number of options &c which were
+	lacking same, also tidied up other typos as noticed en passant.
+
+2000-01-18  Jesper Skov  <jskov@cygnus.co.uk>
+	CR 902066
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_ram.h: 
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
+	Correct RAM size.
+	
+1999-12-21  Jonathan Larmour  <jlarmour@cygnus.co.uk>
+
+	* src/plf_misc.c (cyg_hal_user_break): Rename
+	CYG_HAL_USE_ROM_MONITOR_GDB_STUBS -> CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs
+
+	* cdl/hal_sh_edk7708.cdl: Don't need to define CYG_HAL_SH_SH7708 any
+	more
+	Add new platform-specific CYGSEM_HAL_USE_ROM_MONITOR option to
+	control ROM monitor support
+
+1999-12-20  Gary Thomas  <gthomas@cygnus.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl: Add -Wl for linker options.
+
+1999-11-25  Gary Thomas  <gthomas@cygnus.co.uk>
+
+	* include/pkgconf/mlt_sh_edk7708_stubs.h: 
+	* include/pkgconf/mlt_sh_edk7708_rom.h: 
+	* include/pkgconf/mlt_sh_edk7708_ram.h: New file(s).
+
+1999-11-02  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl: Use define_proc for CPU define.
+
+1999-11-01  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl: Use define_proc for const header defs.
+
+1999-10-29  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* cdl/hal_sh_edk7708.cdl: Added.
+
+1999-10-13  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* src/hal_diag.c (hal_diag_write_char): 
+	* src/plf_misc.c:
+	* src/PKGconf.mak (COMPILE): 
+	Added user breakpoint handling.
+
+1999-09-02  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* misc/STUBS_config: Also disable kernel support in HAL.
+
+1999-08-17  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* misc/STUBS_config: Added.
+
+1999-06-18  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* include/pkgconf/hal_sh_edk7708.h: Consistent EDK7708 naming.
+
+1999-06-01  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* src/hal_diag.c (hal_diag_write_char): Don't look for 0x03
+	chars. It doesn't work well. Better the dedicated magic handles
+	C-c.
+
+	* src/edk.S: Cleaned up memory controller setup.
+
+1999-05-31  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* include/pkgconf/hal_sh_edk7708.h: Removed FIX ME.
+
+	* src/edk.S: Fixed delay-slot problem.
+
+1999-05-28  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* include/pkgconf/hal_sh_edk7708.h: Fixed platform name.
+
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_rom.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_stubs.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_stubs.mlt: 
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi: 
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt: 
+	Fixed memory layout and generated MLT files.
+	
+1999-05-28  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* include/pkgconf/hal_sh_edk.h:            [deleted]
+	* include/pkgconf/mlt_sh_edk_ram.ldi:      [deleted]
+	* include/pkgconf/mlt_sh_edk_ram.mlt:      [deleted]
+	* include/pkgconf/mlt_sh_edk_rom.ldi:      [deleted]
+	* include/pkgconf/mlt_sh_edk_stubs.ldi:    [deleted]
+	* include/pkgconf/hal_sh_edk7708.h:        [added]
+	* include/pkgconf/mlt_sh_edk7708_ram.ldi:  [added]
+	* include/pkgconf/mlt_sh_edk7708_ram.mlt:  [added]
+	* include/pkgconf/mlt_sh_edk7708_rom.ldi:  [added]
+	* include/pkgconf/mlt_sh_edk7708_rom.mlt:  [added]
+	* include/pkgconf/mlt_sh_edk7708_stubs.ldi:[added]
+	* include/pkgconf/mlt_sh_edk7708_stubs.mlt:[added]
+	* src/PKGconf.mak: 
+        Renamed SH platform package to edk7708.
+
+1999-05-21  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* include/pkgconf/hal_sh_edk.h (CYGNUM_HAL_RTC_PERIOD): The timer
+	is running at 1/4 of the peripheral clock.
+
+	* include/plf_stub.h: Added RESET code.
+
+	* include/pkgconf/hal_sh_edk.h: Added RTC data for the edk board.
+
+1999-05-20  John Dallaway  <jld@cygnus.co.uk>
+
+	* include/pkgconf/mlt_sh_edk_ram.mlt: Working MLT-generated
+	version.
+
+1999-05-20  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* Moved files to CVS trunk.
+
+1999-05-19  Jesper Skov  <jskov@cygnus.co.uk>
+
+	* src/edk.S (_hal_hardware_init): Fix a few mistakes.
+
+	* include/plf_stub.h: Enable led in stub init.
+
+	* include/pkgconf/mlt_sh_edk_stubs.ldi: 
+	* include/pkgconf/mlt_sh_edk_rom.ldi: 
+	Added.
+	Moved RAM region to the end of the chunk and made it bigger.
+	
+	* src/edk.S (_hal_hardware_init): Added Bus State Controller
+	initialization.
+
+1999-05-19  Jesper Skov  <jskov@cygnus.co.uk>
+
+        * Most things working now. Will start keeping track of changes.
+	
+1999-04-22  Jesper Skov  <jskov@lassi.cygnus.co.uk>
+
+	* Set up directory structure.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/cdl/hal_sh_edk7708.cdl
@@ -0,0 +1,312 @@
+# ====================================================================
+#
+#      hal_sh_edk7708.cdl
+#
+#      EDK7708 board HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  jskov
+# Contributors:
+# Date:           1999-10-29
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_SH_EDK7708 {
+    display       "Hitachi EDK/SH7708 board"
+    parent        CYGPKG_HAL_SH
+    requires      CYGPKG_HAL_SH_7708
+    define_header hal_sh_edk7708.h
+    include_dir   cyg/hal
+    description   "
+        The edk HAL package provides the support needed to run
+        eCos on a Hitachi SH3 EDK7708 board."
+
+    compile       hal_diag.c plf_misc.c
+
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS
+    implements    CYGINT_HAL_DEBUG_GDB_STUBS_BREAK
+    implements    CYGINT_HAL_VIRTUAL_VECTOR_SUPPORT
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_TARGET_H   <pkgconf/hal_sh.h>"
+        puts $::cdl_system_header "#define CYGBLD_HAL_PLATFORM_H <pkgconf/hal_sh_edk7708.h>"
+
+        puts $::cdl_header "#define CYGNUM_HAL_SH_SH3_SCI_PORTS 1"
+        puts $::cdl_header "#define CYGHWR_HAL_VSR_TABLE 0x08000000"
+        puts $::cdl_header "#define CYGHWR_HAL_VECTOR_TABLE 0x08000100"
+    }
+
+    cdl_component CYG_HAL_STARTUP {
+        display       "Startup type"
+        flavor        data
+        legal_values  {"RAM" "ROM" "ROMRAM"}
+        default_value {"RAM"}
+	no_define
+	define -file system.h CYG_HAL_STARTUP
+        description   "
+           When targetting the EDK7708 board it is possible to build
+           the system for either RAM bootstrap or ROM bootstrap.
+           RAM bootstrap generally requires that the board
+           is equipped with ROMs containing a suitable ROM monitor or
+           equivalent software that allows GDB to download the eCos
+           application on to the board. The ROM bootstrap typically
+           requires that the eCos application be blown into EPROMs or
+           equivalent technology.  ROMRAM bootstrap is similar to ROM
+           bootstrap, but everything is copied to RAM before execution 
+           starts thus improving performace, but at the cost of an
+           increased RAM footprint."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS {
+        display      "Number of communication channels on the board"
+        flavor       data
+        calculated   1
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL {
+        display          "Debug serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+           The EDK/7708 board has only one serial port. This option
+           chooses which port will be used to connect to a host
+           running GDB."
+    }
+
+    cdl_option CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL {
+        display          "Diagnostic serial port"
+        flavor data
+        legal_values     0 to CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS-1
+        default_value    0
+        description      "
+           The EDK/7708 board has only one serial port.  This option
+           chooses which port will be used for diagnostic output."
+    }
+
+    cdl_component CYGHWR_HAL_SH_PLF_CLOCK_SETTINGS {
+        display          "SH on-chip platform clock controls"
+        description      "
+            The various clocks used by the system are derived from
+            these options."
+        flavor        none
+        no_define
+                     
+        cdl_option CYGHWR_HAL_SH_OOC_XTAL {
+            display          "SH clock crystal"
+            flavor           data
+            legal_values     8000000 to 50000000
+            default_value    15000000
+            no_define
+            description      "
+                This option specifies the frequency of the crystal all
+                other clocks are derived from."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_PLL_1 {
+            display          "SH clock PLL circuit 1"
+            flavor           data
+            default_value    1
+            legal_values     { 0 1 2 4 }
+            description      "
+                This selects the multiplication factor provided by
+                PLL1. If PLL1 is disabled via CAP1, this option should
+                be set to zero."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_PLL_2 {
+            display          "SH clock PLL circuit 2"
+            flavor           data
+            default_value    4
+            legal_values     { 0 1 4 }
+            no_define
+            description      "
+                This selects the multiplication factor provided by
+                PLL2. If PLL2 is disabled via CAP2, this option should
+                be set to zero."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_1 {
+            display          "SH clock divider 1"
+            flavor           data
+            default_value    1
+            legal_values     { 1 2 3 4 }
+            description      "
+                This divider option affects the CPU core clock."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_DIVIDER_2 {
+            display          "SH clock divider 2"
+            flavor           data
+            default_value    4
+            legal_values     { 1 2 3 4 }
+            description      "
+                This divider option affects the peripheral clock."
+        }
+
+        cdl_option CYGHWR_HAL_SH_OOC_CLOCK_MODE {
+            display          "SH clock mode"
+            flavor           data
+            default_value    2
+            legal_values     { 0 1 2 3 4 7 }
+            description      "
+                This option must mirror the clock mode hardwired on
+                the MD0-MD2 pins of the CPU in order to correctly
+                initialize the FRQCR register."
+        }
+    }
+
+    cdl_component CYGBLD_GLOBAL_OPTIONS {
+        display "Global build options"
+        flavor  none
+        parent  CYGPKG_NONE
+        no_define
+        description   "
+	    Global build options including control over
+	    compiler flags, linker flags and choice of toolchain."
+
+
+        cdl_option CYGBLD_GLOBAL_COMMAND_PREFIX {
+            display "Global command prefix"
+            flavor  data
+            no_define
+            default_value { "sh-elf" }
+            description "
+                This option specifies the command prefix used when
+                invoking the build tools."
+        }
+
+        cdl_option CYGBLD_GLOBAL_CFLAGS {
+            display "Global compiler flags"
+            flavor  data
+            no_define
+              default_value { CYGHWR_HAL_SH_BIGENDIAN ? "-mb -m3 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" : "-ml -m3 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority" }
+            description   "
+                This option controls the global compiler flags which
+                are used to compile all packages by
+                default. Individual packages may define
+                options which override these global flags."
+        }
+
+        cdl_option CYGBLD_GLOBAL_LDFLAGS {
+            display "Global linker flags"
+            flavor  data
+            no_define
+            default_value { CYGHWR_HAL_SH_BIGENDIAN ? "-mb -m3 -nostdlib -Wl,--gc-sections -Wl,-static" : "-ml -m3 -nostdlib -Wl,--gc-sections -Wl,-static" }
+            description   "
+                This option controls the global linker flags. Individual
+                packages may define options which override these global flags."
+        }
+
+        cdl_option CYGBLD_BUILD_GDB_STUBS {
+            display "Build GDB stub ROM image"
+            default_value 0
+            requires { CYG_HAL_STARTUP == "ROM" }
+            requires CYGSEM_HAL_ROM_MONITOR
+            requires CYGBLD_BUILD_COMMON_GDB_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+            requires CYGDBG_HAL_DEBUG_GDB_BREAK_SUPPORT
+            requires CYGDBG_HAL_DEBUG_GDB_THREAD_SUPPORT
+            requires ! CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
+            requires ! CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM
+            no_define
+            description "
+                This option enables the building of the GDB stubs for the
+                board. The common HAL controls takes care of most of the
+                build process, but the final conversion from ELF image to
+                binary data is handled by the platform CDL, allowing
+                relocation of the data if necessary."
+
+            make -priority 320 {
+                <PREFIX>/bin/gdb_module.bin : <PREFIX>/bin/gdb_module.img
+                $(OBJCOPY) -O binary $< $@
+            }
+        }
+    }
+
+    cdl_component CYGHWR_MEMORY_LAYOUT {
+        display "Memory layout"
+        flavor data
+        no_define
+        calculated { CYG_HAL_STARTUP == "RAM" ? "sh_edk7708_ram" : \
+                     CYG_HAL_STARTUP == "ROM" ? "sh_edk7708_rom" : \
+                                                "sh_edk7708_romram" }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_LDI {
+            display "Memory layout linker script fragment"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_LDI
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_sh_edk7708_ram.ldi>" : \
+                         CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_sh_edk7708_rom.ldi>" : \
+                                                    "<pkgconf/mlt_sh_edk7708_romram.ldi>" }
+        }
+
+        cdl_option CYGHWR_MEMORY_LAYOUT_H {
+            display "Memory layout header file"
+            flavor data
+            no_define
+            define -file system.h CYGHWR_MEMORY_LAYOUT_H
+            calculated { CYG_HAL_STARTUP == "RAM" ? "<pkgconf/mlt_sh_edk7708_ram.h>" : \
+                         CYG_HAL_STARTUP == "ROM" ? "<pkgconf/mlt_sh_edk7708_rom.h>" : \
+                                                    "<pkgconf/mlt_sh_edk7708_romram.h>" }
+        }
+    }
+
+    cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
+        display       "Work with a ROM monitor"
+        flavor        booldata
+        legal_values  { "GDB_stubs" }
+        default_value { CYG_HAL_STARTUP == "RAM" ? "GDB_stubs" : 0 }
+        requires      { CYG_HAL_STARTUP == "RAM" }
+        parent        CYGPKG_HAL_ROM_MONITOR
+        description   "
+            Support can be enabled for boot ROMs or ROM monitors which contain
+            GDB stubs. This support changes various eCos semantics such as
+            the encoding of diagnostic output, and the overriding of hardware
+            interrupt vectors."
+    }
+
+    cdl_option CYGSEM_HAL_ROM_MONITOR {
+        display       "Behave as a ROM monitor"
+        flavor        bool
+        default_value 0
+        parent        CYGPKG_HAL_ROM_MONITOR
+        requires      { CYG_HAL_STARTUP == "ROM" }
+        description   "
+            Enable this option if this program is to be used as a ROM monitor,
+            i.e. applications will be loaded into RAM on the board, and this
+            ROM monitor may process exceptions or interrupts generated from the
+            application. This enables features such as utilizing a separate
+            interrupt stack when exceptions are generated."
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/hal_diag.h
@@ -0,0 +1,88 @@
+#ifndef CYGONCE_HAL_HAL_DIAG_H
+#define CYGONCE_HAL_HAL_DIAG_H
+
+//=============================================================================
+//
+//      hal_diag.h
+//
+//      HAL Support for Kernel Diagnostic Routines
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-04-24
+// Purpose:     HAL Support for Kernel Diagnostic Routines
+// Description: Diagnostic routines for use during kernel development.
+// Usage:       #include <cyg/hal/hal_diag.h>
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+
+#include <cyg/hal/hal_if.h>
+
+#define HAL_DIAG_INIT() hal_if_diag_init()
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_if_diag_write_char(_c_)
+#define HAL_DIAG_READ_CHAR(_c_) hal_if_diag_read_char(&_c_)
+
+#else // everything by steam
+
+//-----------------------------------------------------------------------------
+// functions implemented in hal_diag.c
+
+externC void hal_diag_init(void);
+
+externC void hal_diag_write_char(char c);
+
+externC void hal_diag_read_char(char *c);
+
+//-----------------------------------------------------------------------------
+
+#define HAL_DIAG_INIT() hal_diag_init()
+
+#define HAL_DIAG_WRITE_CHAR(_c_) hal_diag_write_char(_c_)
+
+#define HAL_DIAG_READ_CHAR(_c_) hal_diag_read_char(&_c_)
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+//-----------------------------------------------------------------------------
+// Simple LED control.
+externC void hal_diag_led_on( void );
+externC void hal_diag_led_off( void );
+
+//-----------------------------------------------------------------------------
+// end of hal_diag.h
+#endif // CYGONCE_HAL_HAL_DIAG_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_ram.h
@@ -0,0 +1,17 @@
+// eCos memory layout - Fri Oct 20 09:50:36 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x8008000)
+#define CYGMEM_REGION_ram_SIZE (0xf8000)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x8100000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_ram.ldi
@@ -0,0 +1,26 @@
+// eCos memory layout - Fri Oct 20 09:50:36 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x8008000, LENGTH = 0xf8000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_vectors (ram, 0x8008000, LMA_EQ_VMA)
+    SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (ram, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data (ram, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_ram.mlt
@@ -0,0 +1,12 @@
+version 0
+region ram 8008000 f8000 0 !
+section vectors 0 1 0 1 1 1 1 1 8008000 8008000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 1 0 1 0 1 0 1 data data !
+section data 0 8 0 1 0 1 0 1 bss bss !
+section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_rom.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 09:51:04 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x8000200)
+#define CYGMEM_REGION_ram_SIZE (0xffe00)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xa0000000)
+#define CYGMEM_REGION_rom_SIZE (0x20000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x8100000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_rom.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 09:51:04 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x8000200, LENGTH = 0xffe00
+    rom : ORIGIN = 0xa0000000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_vectors (rom, 0xa0000000, LMA_EQ_VMA)
+    SECTION_text (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_fini (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_rodata1 (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_rodata (rom, ALIGN (0x8), LMA_EQ_VMA)
+    SECTION_fixup (rom, ALIGN (0x4), LMA_EQ_VMA)
+    SECTION_gcc_except_table (rom, ALIGN (0x1), LMA_EQ_VMA)
+    SECTION_data (ram, 0x8000200, FOLLOWING (.gcc_except_table))
+    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_rom.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 8000200 ffe00 0 !
+region rom a0000000 20000 1 !
+section data 0 1 1 1 1 1 0 0 8000200 bss !
+section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
+section vectors 0 1 0 1 1 1 1 1 a0000000 a0000000 text text !
+section text 0 4 0 1 0 1 0 1 fini fini !
+section fini 0 4 0 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 8 0 1 0 1 0 1 rodata rodata !
+section rodata 0 8 0 1 0 1 0 1 fixup fixup !
+section fixup 0 4 0 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 1 0 1 0 0 0 1 data !
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_romram.h
@@ -0,0 +1,20 @@
+// eCos memory layout - Fri Oct 20 09:51:30 2000
+
+// This is a generated file - do not edit
+
+#ifndef __ASSEMBLER__
+#include <cyg/infra/cyg_type.h>
+#include <stddef.h>
+
+#endif
+#define CYGMEM_REGION_ram (0x8000200)
+#define CYGMEM_REGION_ram_SIZE (0xffe00)
+#define CYGMEM_REGION_ram_ATTR (CYGMEM_REGION_ATTR_R | CYGMEM_REGION_ATTR_W)
+#define CYGMEM_REGION_rom (0xa0000000)
+#define CYGMEM_REGION_rom_SIZE (0x20000)
+#define CYGMEM_REGION_rom_ATTR (CYGMEM_REGION_ATTR_R)
+#ifndef __ASSEMBLER__
+extern char CYG_LABEL_NAME (__heap1) [];
+#endif
+#define CYGMEM_SECTION_heap1 (CYG_LABEL_NAME (__heap1))
+#define CYGMEM_SECTION_heap1_SIZE (0x8100000 - (size_t) CYG_LABEL_NAME (__heap1))
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_romram.ldi
@@ -0,0 +1,27 @@
+// eCos memory layout - Fri Oct 20 09:51:30 2000
+
+// This is a generated file - do not edit
+
+#include <cyg/infra/cyg_type.inc>
+
+MEMORY
+{
+    ram : ORIGIN = 0x8000200, LENGTH = 0xffe00
+    rom : ORIGIN = 0xa0000000, LENGTH = 0x20000
+}
+
+SECTIONS
+{
+    SECTIONS_BEGIN
+    SECTION_vectors (ram, 0x8000200, AT (0xa0000000))
+    SECTION_text (ram, ALIGN (0x10), FOLLOWING (.vectors))
+    SECTION_fini (ram, ALIGN (0x10), FOLLOWING (.text))
+    SECTION_rodata1 (ram, ALIGN (0x10), FOLLOWING (.fini))
+    SECTION_rodata (ram, ALIGN (0x10), FOLLOWING (.rodata1))
+    SECTION_fixup (ram, ALIGN (0x10), FOLLOWING (.rodata))
+    SECTION_gcc_except_table (ram, ALIGN (0x10), FOLLOWING (.fixup))
+    SECTION_data (ram, ALIGN (0x10), FOLLOWING (.gcc_except_table))
+    SECTION_bss (ram, ALIGN (0x10), LMA_EQ_VMA)
+    CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
+    SECTIONS_END
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/pkgconf/mlt_sh_edk7708_romram.mlt
@@ -0,0 +1,13 @@
+version 0
+region ram 8000200 ffe00 0 !
+region rom a0000000 20000 1 !
+section vectors 0 10 1 1 1 1 1 1 8000200 a0000000 text text !
+section text 0 10 1 1 0 1 0 1 fini fini !
+section fini 0 10 1 1 0 1 0 1 rodata1 rodata1 !
+section rodata1 0 10 1 1 0 1 0 1 rodata rodata !
+section rodata 0 10 1 1 0 1 0 1 fixup fixup !
+section fixup 0 10 1 1 0 1 0 1 gcc_except_table gcc_except_table !
+section gcc_except_table 0 10 1 1 0 1 0 1 data data !
+section data 0 10 1 1 0 1 0 0 bss !
+section bss 0 10 0 1 0 1 0 1 heap1 heap1 !
+section heap1 0 8 0 0 0 0 0 0 !
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/platform.inc
@@ -0,0 +1,196 @@
+#ifndef CYGONCE_HAL_PLATFORM_INC
+#define CYGONCE_HAL_PLATFORM_INC
+##=============================================================================
+##
+##	platform.inc
+##
+##	SH/EDK7708 board assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.0 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://sourceware.cygnus.com/ecos                                        
+#                                                                          
+# Software distributed under the License is distributed on an       
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	jskov
+## Contributors:jskov
+## Date:	2000-02-02
+## Purpose:	SH/EDK7708 board definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the SH/EDK7708 board.
+## Usage:
+##		#include <cyg/hal/platform.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/sh_regs.h>
+#include <cyg/hal/sh_offsets.inc>
+
+#------------------------------------------------------------------------------
+# Hardware initialization.
+
+        .macro  hal_hardware_init
+        // Set up the Bus State Controller
+        mova     BSC_settings_table,r0
+        mov      r0,r3
+1:      mov.w    @r3+,r0                // Address (or zero)
+        cmp/eq   #0,r0
+        bt       2f
+        mov.w    @r3+,r1                // data
+        bra      1b
+         mov.w    r1,@r0                // delay slot
+
+        .align  2
+BSC_settings_table:
+        # These are the settings set by the Hitachi ROM Monitor.
+
+	.word   CYGARC_REG_FRQCR
+	.word   CYGARC_REG_FRQCR_INIT
+
+        # BCR2: Bus size of areas 1-6 to 32 bits
+        .word   CYGARC_REG_BCR2
+        .word   0x3ffc
+        # BCR1: Areas 2 and 3 are SDRAM
+        .word   CYGARC_REG_BCR1
+        .word   0x080c
+        # BCR2: Bus size of areas 1-6 to 32 bits [note: second write!]
+        .word   CYGARC_REG_BCR2
+        .word   0x3ffc
+        # WCR1: 3 wait-state cycles inserted for all areas
+        .word   CYGARC_REG_WCR1
+        .word   0x3fff
+        # WCR2: extra wait states and full pitch for burst
+        .word   CYGARC_REG_WCR2
+        .word   0xffd7
+        # MCR: RAS/CAS & burst timing area 2/3
+        .word   CYGARC_REG_MCR
+        .word   0x963c
+        # RTCNT: refresh counter (needs a5 in top byte to accept write)
+        .word   CYGARC_REG_RTCNT
+        .word   (0xa500 | 0x0000)
+        # RTCOR: refresh time constant (needs a5 in top byte to accept write)
+        .word   CYGARC_REG_RTCOR
+        .word   (0xa500 | 0x003b)
+        # RFCR:  refresh count register (needs a4 in top byte to accept write)
+        .word   CYGARC_REG_RFCR
+        .word   (0xa400 | 0x0000)
+        # RTCSR: refresh timer control (needs a5 in top byte to accept write)
+        .word   CYGARC_REG_RTCSR
+        .word   (0xa500 | 0x0008)
+
+        # Set SDMR to 0x220
+        .word    0xd880
+        .word    0       
+        
+        # Table end
+        .word   0
+
+        .align  2
+2:      
+        .endm
+
+#------------------------------------------------------------------------------
+# Monitor initialization.
+
+#ifndef CYGPKG_HAL_SH_MON_DEFINED
+
+#if	!defined(CYG_HAL_STARTUP_RAM) ||		\
+	(	defined(CYG_HAL_STARTUP_RAM) &&		\
+		!defined(CYGSEM_HAL_USE_ROM_MONITOR))
+
+	# If we are not starting up from RAM, or we are starting in
+	# RAM and NOT using a ROM monitor, initialize the VSR table.
+
+	.macro	hal_mon_init
+        mov.l   $_hal_vsr_table_p,r3
+	# Write exception vectors
+	mov.l   $_cyg_hal_default_exception_vsr_p,r4
+	mov     #CYGNUM_HAL_VSR_EXCEPTION_COUNT,r5
+1:	mov.l   r4,@r3
+        add     #4,r3
+	dt	r5
+	bf	1b
+	# Write interrupt vector
+	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
+	mov.l   r4,@r3
+	bra	2f
+	 nop
+        .align  2
+
+$_cyg_hal_default_exception_vsr_p:
+	.long	_cyg_hal_default_exception_vsr
+$_cyg_hal_default_interrupt_vsr_p:
+	.long	_cyg_hal_default_interrupt_vsr
+
+	.extern _hal_vsr_table
+$_hal_vsr_table_p:
+	.long _hal_vsr_table
+
+2:
+	.endm
+
+#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+	# Initialize the VSR table entries
+	# We only take control of the interrupt vector,
+	# the rest are left to the ROM for now...
+
+	.macro	hal_mon_init
+	# Write interrupt vector
+        mov.l   $_hal_vsr_table_p,r3
+	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
+	mov.l   r4,@r3
+	bra	2f
+	 nop
+        .align  2
+
+$_cyg_hal_default_interrupt_vsr_p:
+	.long	_cyg_hal_default_interrupt_vsr
+
+	.extern _hal_vsr_table
+$_hal_vsr_table_p:
+	.long _hal_vsr_table+CYGNUM_HAL_VECTOR_INTERRUPT*4
+
+2:
+	.endm
+
+#else
+
+	.macro	hal_mon_init
+	.endm
+
+#endif
+
+
+#define CYGPKG_HAL_SH_MON_DEFINED
+
+#endif // CYGPKG_HAL_SH_MON_DEFINED
+
+#endif // CYGONCE_HAL_PLATFORM_INC
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/plf_cache.h
@@ -0,0 +1,61 @@
+#ifndef CYGONCE_PLF_CACHE_H
+#define CYGONCE_PLF_CACHE_H
+
+//=============================================================================
+//
+//      plf_cache.h
+//
+//      Platform specific cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-31
+// Purpose:     Cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations.
+// Usage:
+//              #include <cyg/hal/plf_cache.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+//=============================================================================
+
+// Nothing here at present.
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_PLF_CACHE_H
+// End of plf_cache.h
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/plf_intr.h
@@ -0,0 +1,60 @@
+#ifndef CYGONCE_HAL_PLF_INTR_H
+#define CYGONCE_HAL_PLF_INTR_H
+
+//==========================================================================
+//
+//      plf_intr.h
+//
+//      Platform specific Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,
+// Date:         2000-10-31
+// Purpose:      Define Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock for the EDK board.
+// Usage:
+//              #include <cyg/hal/plf_intr.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+//--------------------------------------------------------------------------
+
+// No platform specific stuff at present.
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_PLF_INTR_H
+// End of plf_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/include/plf_stub.h
@@ -0,0 +1,90 @@
+#ifndef CYGONCE_HAL_PLF_STUB_H
+#define CYGONCE_HAL_PLF_STUB_H
+
+//=============================================================================
+//
+//      plf_stub.h
+//
+//      Platform header for GDB stub support.
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-05-18
+// Purpose:     Platform HAL stub support for Hitachi/EDK boards.
+// Usage:       #include <cyg/hal/plf_stub.h>
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+#include <cyg/infra/cyg_type.h>         // CYG_UNUSED_PARAM, externC
+
+#include <cyg/hal/sh_stub.h>            // architecture stub support
+
+#include <cyg/hal/hal_diag.h>           // hal_diag_led_on
+
+//----------------------------------------------------------------------------
+// Define some platform specific communication details. This is mostly
+// handled by hal_if now, but we need to make sure the comms tables are
+// properly initialized.
+
+externC void cyg_hal_plf_comms_init(void);
+
+#define HAL_STUB_PLATFORM_INIT_SERIAL()       cyg_hal_plf_comms_init()
+
+#define HAL_STUB_PLATFORM_SET_BAUD_RATE(baud) CYG_UNUSED_PARAM(int, (baud))
+#define HAL_STUB_PLATFORM_INTERRUPTIBLE       0
+
+//----------------------------------------------------------------------------
+// Stub initializer.
+#ifdef CYGSEM_HAL_ROM_MONITOR
+# define HAL_STUB_PLATFORM_INIT()              hal_diag_led_on()
+#else
+# define HAL_STUB_PLATFORM_INIT()              CYG_EMPTY_STATEMENT
+#endif
+
+#endif // ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+
+//----------------------------------------------------------------------------
+// Reset.
+// Block interrupts and cause an exception. This forces a reset.
+#define HAL_STUB_PLATFORM_RESET() \
+    asm volatile ("ldc %0,sr;trapa #0x00;" : : "r" (CYGARC_REG_SR_BL))
+
+#define HAL_STUB_PLATFORM_RESET_ENTRY 0xa0000000
+    
+//-----------------------------------------------------------------------------
+#endif // CYGONCE_HAL_PLF_STUB_H
+// End of plf_stub.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/src/edk.S
@@ -0,0 +1,117 @@
+##=============================================================================
+##
+##      edk.S
+##
+##      EDK board hardware setup
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):   jskov
+## Contributors:jskov
+## Date:        1999-05-03
+## Purpose:     EDK7708 board hardware setup
+## Description: This file contains any code needed to initialize the
+##              hardware on a Hitachi SH3 EDK7708 board.
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/sh_regs.h>
+
+        .globl  _hal_hardware_init
+_hal_hardware_init:
+
+        // Set up the Bus State Controller
+        mov.l    $BSC_settings_table,r3
+1:      mov.w    @r3+,r0                // Address (or zero)
+        cmp/eq   #0,r0
+        bt       2f
+        mov.w    @r3+,r1                // data
+        bra      1b
+         mov.w    r1,@r0                // delay slot
+
+2:
+        rts
+         nop
+
+        .align  2
+$BSC_settings_table:
+        .long   BSC_settings_table
+BSC_settings_table:
+        # These are the settings set by the Hitachi ROM Monitor.
+
+        # BCR2: Bus size of areas 1-6 to 32 bits
+        .word   CYGARC_REG_BCR2
+        .word   0x3ffc
+        # BCR1: Areas 2 and 3 are SDRAM
+        .word   CYGARC_REG_BCR1
+        .word   0x080c
+        # BCR2: Bus size of areas 1-6 to 32 bits [note: second write!]
+        .word   CYGARC_REG_BCR2
+        .word   0x3ffc
+        # WCR1: 3 wait-state cycles inserted for all areas
+        .word   CYGARC_REG_WCR1
+        .word   0x3fff
+        # WCR2: extra wait states and full pitch for burst
+        .word   CYGARC_REG_WCR2
+        .word   0xffd7
+        # MCR: RAS/CAS & burst timing area 2/3
+        .word   CYGARC_REG_MCR
+        .word   0x963c
+#if 0
+        # DCR: RAS/CAS & burst timing area 2
+        .word   CYGARC_REG_DCR
+        .word   0x0000
+        # PCR: PCMCIA disabled
+        .word   CYGARC_REG_PCR
+        .word   0x0000
+#endif
+        # RTCNT: refresh counter (needs a5 in top byte to accept write)
+        .word   CYGARC_REG_RTCNT
+        .word   (0xa500 | 0x0000)
+        # RTCOR: refresh time constant (needs a5 in top byte to accept write)
+        .word   CYGARC_REG_RTCOR
+        .word   (0xa500 | 0x003b)
+        # RFCR:  refresh count register (needs a4 in top byte to accept write)
+        .word   CYGARC_REG_RFCR
+        .word   (0xa400 | 0x0000)
+        # RTCSR: refresh timer control (needs a5 in top byte to accept write)
+        .word   CYGARC_REG_RTCSR
+        .word   (0xa500 | 0x0008)
+
+        # Set SDMR to 0x220
+        .word    0xd880
+        .word    0       
+        
+        # Table end
+        .word   0
+
+#------------------------------------------------------------------------------
+# end of edk.S
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/src/hal_diag.c
@@ -0,0 +1,219 @@
+//=============================================================================
+//
+//      hal_diag.c
+//
+//      HAL diagnostic output code
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    nickg, jskov
+// Contributors: nickg, jskov
+// Date:         1999-03-23
+// Purpose:      HAL diagnostic output
+// Description:  Implementations of HAL diagnostic output support.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_diag.h>           // our header.
+
+#include <cyg/infra/cyg_type.h>         // base types, externC
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/hal_if.h>             // Calling interface
+#include <cyg/hal/hal_intr.h>           // Interrupt macros
+#include <cyg/hal/sh3_sci.h>            // driver API
+#include <cyg/hal/hal_misc.h>           // Helper functions
+
+#define SCI_BASE ((cyg_uint8*)0xfffffe80)
+
+//-----------------------------------------------------------------------------
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
+    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
+
+void
+cyg_hal_plf_comms_init(void)
+{
+    static int initialized = 0;
+
+    if (initialized)
+        return;
+
+    initialized = 1;
+
+    cyg_hal_plf_sci_init(0, 0, CYGNUM_HAL_INTERRUPT_SCI_RXI, SCI_BASE);
+}
+
+#endif //  CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+//=============================================================================
+// Led control
+//=============================================================================
+#define LED_ON   0x04000000
+#define LED_OFF  0x18000000
+
+void
+hal_diag_led_on( void )
+{
+    HAL_WRITE_UINT8(LED_ON, 0);
+}
+
+void
+hal_diag_led_off( void )
+{
+    HAL_WRITE_UINT8(LED_OFF, 0);
+}
+
+
+//=============================================================================
+// Compatibility with older stubs
+//=============================================================================
+
+#ifndef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+static channel_data_t channel = { (cyg_uint8*)SCI_BASE, 0, 0};
+
+#if defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+#include <cyg/hal/hal_stub.h>           // hal_output_gdb_string
+#endif
+
+#if defined(CYGSEM_HAL_USE_ROM_MONITOR_GDB_stubs)
+
+#define CYG_HAL_DIAG_GDB
+
+#elif defined(CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS)
+
+#define CYG_HAL_DIAG_GDB
+
+#endif
+
+//-----------------------------------------------------------------------------
+
+void hal_diag_init(void)
+{
+    cyg_hal_plf_sci_init_channel(&channel);
+}
+
+void 
+hal_diag_write_char_serial( char c )
+{
+    cyg_hal_plf_sci_putc(&channel, c);
+}
+
+void
+hal_diag_read_char(char *c)
+{
+    *c = (char) cyg_hal_plf_sci_getc(&channel);
+}
+
+// Packet function
+void 
+hal_diag_write_char(char c)
+{
+#ifdef CYG_HAL_DIAG_GDB
+    static char line[100];
+    static int pos = 0;
+
+    // No need to send CRs
+    if( c == '\r' ) return;
+
+    line[pos++] = c;
+
+    if( c == '\n' || pos == sizeof(line) )
+    {
+        CYG_INTERRUPT_STATE old;
+
+        // Disable interrupts. This prevents GDB trying to interrupt us
+        // while we are in the middle of sending a packet. The serial
+        // receive interrupt will be seen when we re-enable interrupts
+        // later.
+        
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        CYG_HAL_GDB_ENTER_CRITICAL_IO_REGION(old);
+#else
+        HAL_DISABLE_INTERRUPTS(old);
+#endif
+        
+        while(1)
+        {
+            char c1;
+            static char hex[] = "0123456789ABCDEF";
+            cyg_uint8 csum = 0;
+            int i;
+        
+            cyg_hal_plf_sci_putc(&channel, '$');
+            cyg_hal_plf_sci_putc(&channel, 'O');
+            csum += 'O';
+            for( i = 0; i < pos; i++ )
+            {
+                char ch = line[i];
+                char h = hex[(ch>>4)&0xF];
+                char l = hex[ch&0xF];
+                cyg_hal_plf_sci_putc(&channel, h);
+                cyg_hal_plf_sci_putc(&channel, l);
+                csum += h;
+                csum += l;
+            }
+            cyg_hal_plf_sci_putc(&channel, '#');
+            cyg_hal_plf_sci_putc(&channel, hex[(csum>>4)&0xF]);
+            cyg_hal_plf_sci_putc(&channel, hex[csum&0xF]);
+
+            // Wait for the ACK character '+' from GDB here and handle
+            // receiving a ^C instead.
+            c1 = (char) cyg_hal_plf_sci_getc(&channel);
+
+            if( c1 == '+' )
+                break;              // a good acknowledge
+
+            // Check for user break.
+            if( cyg_hal_is_break( &c1, 1 ) )
+                cyg_hal_user_break( NULL );
+
+            // otherwise, loop round again
+        }
+        
+        pos = 0;
+
+        // And re-enable interrupts
+#ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS
+        CYG_HAL_GDB_LEAVE_CRITICAL_IO_REGION(old);
+#else
+        HAL_RESTORE_INTERRUPTS(old);
+#endif
+    }
+#else // CYG_HAL_DIAG_GDB
+    cyg_hal_plf_sci_putc(&channel, c);
+#endif
+}
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
+
+//-----------------------------------------------------------------------------
+// End of hal_diag.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk7708/current/src/plf_misc.c
@@ -0,0 +1,57 @@
+//==========================================================================
+//
+//      plf_misc.c
+//
+//      HAL platform miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,nickg, jlarmour
+// Date:         1999-10-13
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_if.h>             // interfacing API
+
+//--------------------------------------------------------------------------
+void
+hal_platform_init(void)
+{
+    hal_if_init();
+}
+
+//--------------------------------------------------------------------------
+// eof plf_misc.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/ChangeLog
@@ -0,0 +1,35 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* Many changes to bring the Haruki's HAL split up to date. Also
+	split the register header file into many header files, one for
+	each CPU module.
+
+2000-08-15  Haruki Kashiwaya  <kashiwaya@redhat.com>
+
+        * Set up directory structure.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/cdl/hal_sh_sh3.cdl
@@ -0,0 +1,372 @@
+# ====================================================================
+#
+#      hal_sh_sh3.cdl
+#
+#      SH3 variant HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  jskov
+# Contributors:
+# Date:           2000-10-30
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_SH_SH3 {
+    display       "SH3 variant"
+    parent        CYGPKG_HAL_SH
+    hardware
+    include_dir   cyg/hal
+    define_header hal_sh_sh3.h
+    description   "
+        The SH3 (SuperH 3) variant HAL package provides generic
+        support for SH3 variant CPUs."
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H   <pkgconf/hal_sh_sh3.h>"
+    }
+
+    compile       sh3_sci.c sh3_scif.c var_misc.c variant.S
+
+    # The "-o file" is a workaround for CR100958 - without it the
+    # output file would end up in the source directory under CygWin.
+    # n.b. grep does not behave itself under win32
+    make -priority 1 {
+        <PREFIX>/include/cyg/hal/sh3_offsets.inc : <PACKAGE>/src/var_mk_defs.c
+        $(CC) $(CFLAGS) $(INCLUDE_PATH) -Wp,-MD,sh3_offsets.tmp -o var_mk_defs.tmp -S $<
+        fgrep .equ var_mk_defs.tmp | sed s/#// > $@
+        @echo $@ ": \\" > $(notdir $@).deps
+        @tail +2 sh3_offsets.tmp >> $(notdir $@).deps
+        @echo >> $(notdir $@).deps
+        @rm sh3_offsets.tmp var_mk_defs.tmp
+    }
+
+    # CPU variant supported
+    cdl_option CYGPKG_HAL_SH_7707A {
+        display       "SH 7707A microprocessor"
+        parent        CYGPKG_HAL_SH_CPU
+        implements    CYGINT_HAL_SH_VARIANT
+        implements    CYGINT_HAL_SH_CPG_T2
+        default_value 0
+        no_define
+        define        -file=system.h CYGPKG_HAL_SH_7707A
+        description "
+            The SH3 7707A microprocessor. This is an embedded part that in
+            addition to the SH3 processor core has built in peripherals
+            such as memory controllers, serial ports, LCD controller and
+            timers/counters."               
+        define_proc {
+            puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7707a.h>"
+        }
+    }
+    
+    cdl_option CYGPKG_HAL_SH_7708 {
+        display       "SH 7708 microprocessor"
+        parent        CYGPKG_HAL_SH_CPU
+        implements    CYGINT_HAL_SH_VARIANT
+        implements    CYGINT_HAL_SH_CPG_T1
+        default_value 0
+        no_define
+        define        -file=system.h CYGPKG_HAL_SH_7708
+        description "
+            The SH3 7708 microprocessor. This is an embedded part that in
+            addition to the SH3 processor core has built in peripherals
+            such as memory controllers, serial ports and
+            timers/counters."               
+        define_proc {
+            puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7708.h>"
+        }
+    }
+    
+    cdl_option CYGPKG_HAL_SH_7709A {
+        display       "SH 7709A microprocessor"
+        parent        CYGPKG_HAL_SH_CPU
+        implements    CYGINT_HAL_SH_VARIANT
+        implements    CYGINT_HAL_SH_CPG_T3
+        implements    CYGINT_HAL_SH_DMA_CHANNELS
+        implements    CYGINT_HAL_SH_DMA_CHANNELS
+        implements    CYGINT_HAL_SH_DMA_CHANNELS
+        implements    CYGINT_HAL_SH_DMA_CHANNELS
+        default_value 0
+        no_define
+        define        -file=system.h CYGPKG_HAL_SH_7709A
+        description "
+            The SH3 7709A microprocessor. This is an embedded part that in
+            addition to the SH3 processor core has built in peripherals
+            such as memory controllers, DMA controllers, A/D and D/A
+            converters, serial ports and timers/counters."               
+        define_proc {
+            puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7709a.h>"
+        }
+    }
+    
+    cdl_option CYGPKG_HAL_SH_7729 {
+        display       "SH 7729 microprocessor"
+        parent        CYGPKG_HAL_SH_CPU
+        implements    CYGINT_HAL_SH_VARIANT
+        implements    CYGINT_HAL_SH_CPG_T3
+        default_value 0
+        no_define
+        define        -file=system.h CYGPKG_HAL_SH_7729
+        description "
+            The SH3 7729 microprocessor. This is an embedded part that in
+            addition to the SH3 processor core has built in peripherals
+            such as memory controllers, serial ports, and timers/counters,
+            and a DSP engine."
+        define_proc {
+            puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7729.h>"
+        }
+    }
+    
+    cdl_component CYGHWR_HAL_SH_CLOCK_SETTINGS {
+        display          "SH on-chip generic clock controls"
+        description      "
+            The various clocks used by the system are controlled by
+            these options, some of which are derived from platform
+            settings."
+        flavor        none
+        no_define
+
+        cdl_interface CYGINT_HAL_SH_CPG_T1 {
+            display     "Clock pulse generator type 1"
+        }
+
+        cdl_interface CYGINT_HAL_SH_CPG_T2 {
+            display     "Clock pulse generator type 2"
+        }
+
+        cdl_interface CYGINT_HAL_SH_CPG_T3 {
+            display     "Clock pulse generator type 3"
+        }
+
+
+        cdl_option CYGHWR_HAL_SH_TMU_PRESCALE_0 {
+            display       "TMU counter 0 prescaling"
+            description   "
+                The peripheral clock is driving the counter used for
+                the real-time clock, prescaled by this factor."
+            flavor        data
+            legal_values  { 4 16 64 256 }
+            default_value 4
+        }
+
+
+        cdl_option CYGHWR_HAL_SH_CLOCK_CKIO {
+            display    "CKIO clock"
+            no_define
+            flavor     data
+            # CKIO is either XTAL or PLL2 output
+            calculated { CYGINT_HAL_SH_CPG_T1 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 7) 
+                             ? (CYGHWR_HAL_SH_OOC_XTAL)
+                             : CYGHWR_HAL_SH_PLL2_OUTPUT
+                         )
+                         : CYGINT_HAL_SH_CPG_T2 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 2) 
+                             ? (CYGHWR_HAL_SH_OOC_XTAL)
+                             : CYGHWR_HAL_SH_PLL2_OUTPUT
+                         )
+                         : CYGINT_HAL_SH_CPG_T3 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 7) 
+                             ? (CYGHWR_HAL_SH_OOC_XTAL)
+                             : CYGHWR_HAL_SH_PLL2_OUTPUT
+                         )
+                         : 0 }
+        }
+
+        cdl_option CYGHWR_HAL_SH_PLL1_OUTPUT {
+            display    "The clock output from PLL1"
+            no_define
+            flavor     data
+            calculated { CYGHWR_HAL_SH_CLOCK_CKIO * CYGHWR_HAL_SH_OOC_PLL_1 }
+        }
+
+        cdl_option CYGHWR_HAL_SH_PLL2_OUTPUT {
+            display    "The clock output from PLL2"
+            no_define
+            flavor     data
+            calculated { CYGINT_HAL_SH_CPG_T1 ? (
+                             (CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_2)
+                         )
+                         : CYGINT_HAL_SH_CPG_T2 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 5)
+                             ? (CYGHWR_HAL_SH_OOC_XTAL / 2)
+                             : (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 6) 
+                             ? (14745600)
+                             : (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 7) 
+                             ? (11075600)
+                             : (CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_2)
+                         )
+                         : CYGINT_HAL_SH_CPG_T3 ? (
+                             (CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_2)
+                         )
+                         : 0 }
+        }
+
+
+        cdl_option CYGHWR_HAL_SH_DIVIDER1_INPUT {
+            display    "The clock input to divider 1"
+            no_define
+            flavor     data
+            # DIV1 input is either PLL2 output or PLL1 output
+            calculated { (CYGHWR_HAL_SH_OOC_PLL_1 == 0)
+                           ? CYGHWR_HAL_SH_PLL2_OUTPUT
+                           : CYGHWR_HAL_SH_PLL1_OUTPUT }
+        }
+
+        cdl_option CYGHWR_HAL_SH_DIVIDER2_INPUT {
+            display    "The clock input to divider 2"
+            no_define
+            flavor     data
+            # DIV2 input is either PLL2 output or PLL1 output
+            calculated { CYGINT_HAL_SH_CPG_T1 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 3 || CYGHWR_HAL_SH_OOC_CLOCK_MODE == 4)
+                             ? CYGHWR_HAL_SH_PLL2_OUTPUT
+                             : CYGHWR_HAL_SH_PLL1_OUTPUT
+                         )
+                         : CYGINT_HAL_SH_CPG_T2 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE <= 2)
+                             ? CYGHWR_HAL_SH_PLL1_OUTPUT
+                             : CYGHWR_HAL_SH_PLL2_OUTPUT
+                         )
+                         : CYGINT_HAL_SH_CPG_T3 ? (
+                             (CYGHWR_HAL_SH_OOC_CLOCK_MODE == 3 || CYGHWR_HAL_SH_OOC_CLOCK_MODE == 4)
+                             ? CYGHWR_HAL_SH_PLL2_OUTPUT
+                             : CYGHWR_HAL_SH_PLL1_OUTPUT
+                         )
+                         : 0 }
+        }
+
+        cdl_option CYGHWR_HAL_SH_PROCESSOR_SPEED {
+            display          "Processor clock speed (MHz)"
+            flavor           data
+            calculated       { CYGHWR_HAL_SH_DIVIDER1_INPUT / CYGHWR_HAL_SH_OOC_DIVIDER_1 }
+            description      "
+                The core (CPU, cache and MMU) speed is computed from
+                the input clock speed and the divider 1 setting."
+        }
+
+        cdl_option CYGHWR_HAL_SH_BOARD_SPEED {
+            display          "Platform bus clock speed (MHz)"
+            flavor           data
+            calculated       { CYGHWR_HAL_SH_CLOCK_CKIO }
+            description      "
+                The platform bus speed is CKIO."
+        }
+
+        cdl_option CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED {
+            display          "Processor on-chip peripheral clock speed (MHz)"
+            flavor           data
+            calculated       { CYGHWR_HAL_SH_DIVIDER2_INPUT / CYGHWR_HAL_SH_OOC_DIVIDER_2 }
+            description      "
+                The peripheral speed is computed from the input clock
+                speed and the divider 2 settings."
+        }
+    }
+
+
+    cdl_component CYGPKG_HAL_SH_INTERRUPT {
+        display          "Interrupt controls"
+        flavor     none
+        no_define
+        description      "
+            Initial interrupt settings can be specified using these option."
+
+        cdl_option CYGHWR_HAL_SH_IRQ_HANDLE_SPURIOUS_INTERRUPTS {
+            display          "Handle spurious interrupts"
+            default_value    0
+            description      "
+               The SH3 may generate spurious interrupts with INTEVT = 0
+               when changing the BL bit of the status register. Enabling
+               this option will cause such interrupts to be identified
+               very early in the interrupt handler and be ignored.  Given
+               that the SH HAL uses the I-mask to control interrupts,
+               these spurious interrupts should not occur, and so there
+               should be no reason to include the special handling code."
+        }
+
+        cdl_option CYGHWR_HAL_SH_IRQ_USE_IRQLVL {
+            display          "Use IRQ0-3 pins as IRL input"
+            default_value    0
+            description      "
+                It is possible for the IRQ0-3 pins to be used as IRL
+                inputs by enabling this option."
+        }
+
+        cdl_option CYGHWR_HAL_SH_IRQ_ENABLE_IRLS_INTERRUPTS {
+            display          "Enable IRLS interrupt pins"
+            default_value    0
+            active_if        CYGHWR_HAL_SH_IRQ_USE_IRQLVL
+            description      "
+                IRLS interrupt pins must be specifically
+                activated. When they are, they will cause the same
+                type of interrupt as those caused by the IRL pins. If
+                IRL and IRLS pins signal an interrupt at the same
+                time, the highest level interrupt will be generated.
+                Only available on some cores, and probably share pins
+                with other interrupt sources (PINT) which cannot be
+                used in this configuration."
+        }
+    }
+
+    # Cache settings
+    cdl_option CYGHWR_HAL_SH_CACHE_MODE_P0 {
+        display       "Select cache mode set for P0/U0/P3 at startup"
+        parent        CYGPKG_HAL_SH_CACHE
+        default_value { "WRITE_BACK" }
+        legal_values  { "WRITE_BACK" "WRITE_THROUGH" }
+        flavor        data
+        description "
+            Controls what cache mode the cache should be put in at
+            startup for areas P0, U0 and P3. Write-back mode improves
+            performance by letting dirty data to be kept in the
+            cache for a period of time, allowing mutiple writes to
+            the same cache line to be written back to memory in
+            one memory transaction. In Write-through mode, each
+            individual write will cause a memory transaction."
+    }
+    
+    cdl_option CYGHWR_HAL_SH_CACHE_MODE_P1 {
+        display       "Select cache mode set for P1 at startup"
+        parent        CYGPKG_HAL_SH_CACHE
+        default_value { "WRITE_BACK" }
+        legal_values  { "WRITE_BACK" "WRITE_THROUGH" }
+        flavor        data
+        description "
+            Controls what cache mode the cache should be put in at
+            startup for area P1. Write-back mode improves
+            performance by letting dirty data to be kept in the
+            cache for a period of time, allowing mutiple writes to
+            the same cache line to be written back to memory in
+            one memory transaction. In Write-through mode, each
+            individual write will cause a memory transaction."
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_7707a.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_MOD_77xx_H
+#define CYGONCE_HAL_MOD_77xx_H
+
+//=============================================================================
+//
+//      mod_7707a.h
+//
+//      List modules available on CPU
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-06-08
+// Purpose:     Define modules (and versions) available on this CPU.
+// Usage:       Included from <cyg/hal/sh_regs.h>
+//
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Modules provided by the CPU
+
+#define CYGARC_SH_MOD_BCN  2
+#define CYGARC_SH_MOD_CPG  2
+#define CYGARC_SH_MOD_INTC 3
+#define CYGARC_SH_MOD_IRDA 1
+#define CYGARC_SH_MOD_PFC  1
+#define CYGARC_SH_MOD_SCI  1
+#define CYGARC_SH_MOD_SCIF 1
+#define CYGARC_SH_MOD_UBC  1
+
+//-----------------------------------------------------------------------------
+// Extra details for Cache Module (CAC)
+
+// Cache dimenions - one unified cache
+#define CYGARC_SH_MOD_CAC_SIZE        16384 // Size of cache in bytes
+#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
+#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
+
+// Cache addressing information
+// way:   bits 13 - 12
+// entry: bits 11 -  4
+#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
+#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0004000
+#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
+// U : bit 1
+// V : bit 0
+// Writing zero to both forces a flush of the line if it is dirty.
+#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
+
+//-----------------------------------------------------------------------------
+// Extra details for interrupt handling
+#define CYGARC_SH_SOFTWARE_IP_UPDATE
+
+#endif // CYGONCE_HAL_MOD_77xx_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_7708.h
@@ -0,0 +1,81 @@
+#ifndef CYGONCE_HAL_MOD_77xx_H
+#define CYGONCE_HAL_MOD_77xx_H
+
+//=============================================================================
+//
+//      mod_7708.h
+//
+//      List modules available on CPU
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-03-16
+// Purpose:     Define modules (and versions) available on this CPU.
+// Usage:       Included from <cyg/hal/sh_regs.h>
+//
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Modules provided by the CPU
+
+#define CYGARC_SH_MOD_BCN  1
+#define CYGARC_SH_MOD_CPG  1
+#define CYGARC_SH_MOD_INTC 1
+#define CYGARC_SH_MOD_SCI  2
+#define CYGARC_SH_MOD_UBC  1
+
+
+//-----------------------------------------------------------------------------
+// Extra details for Cache Module (CAC)
+
+// Cache dimenions - one unified cache
+#define CYGARC_SH_MOD_CAC_SIZE        8192  // Size of cache in bytes
+#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
+#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
+
+// Cache addressing information
+// way:   bits 12 - 11
+// entry: bits 10 -  4
+#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
+#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0002000
+#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
+// U : bit 1
+// V : bit 0
+// Writing zero to both forces a flush of the line if it is dirty.
+#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
+
+//-----------------------------------------------------------------------------
+// Extra details for interrupt handling
+#define CYGARC_SH_SOFTWARE_IP_UPDATE
+
+#endif // CYGONCE_HAL_MOD_77xx_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_7709a.h
@@ -0,0 +1,84 @@
+#ifndef CYGONCE_HAL_MOD_77xx_H
+#define CYGONCE_HAL_MOD_77xx_H
+
+//=============================================================================
+//
+//      mod_7709a.h
+//
+//      List modules available on CPU
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-03-16
+// Purpose:     Define modules (and versions) available on this CPU.
+// Usage:       Included from <cyg/hal/sh_regs.h>
+//
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Modules provided by the CPU
+
+#define CYGARC_SH_MOD_BCN  2
+#define CYGARC_SH_MOD_CPG  3
+#define CYGARC_SH_MOD_DMAC 1
+#define CYGARC_SH_MOD_INTC 2
+#define CYGARC_SH_MOD_IRDA 1
+#define CYGARC_SH_MOD_PFC  1
+#define CYGARC_SH_MOD_SCI  1
+#define CYGARC_SH_MOD_SCIF 1
+#define CYGARC_SH_MOD_UBC  2
+
+//-----------------------------------------------------------------------------
+// Extra details for Cache Module (CAC)
+
+// Cache dimenions - one unified cache
+#define CYGARC_SH_MOD_CAC_SIZE        16384 // Size of cache in bytes
+#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
+#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
+
+// Cache addressing information
+// way:   bits 13 - 12
+// entry: bits 11 -  4
+#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
+#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0004000
+#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
+// U : bit 1
+// V : bit 0
+// Writing zero to both forces a flush of the line if it is dirty.
+#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
+
+//-----------------------------------------------------------------------------
+// Extra details for interrupt handling
+#define CYGARC_SH_SOFTWARE_IP_UPDATE
+
+#endif // CYGONCE_HAL_MOD_77xx_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_7729.h
@@ -0,0 +1,83 @@
+#ifndef CYGONCE_HAL_MOD_77xx_H
+#define CYGONCE_HAL_MOD_77xx_H
+
+//=============================================================================
+//
+//      mod_7729.h
+//
+//      List modules available on CPU
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-08-29
+// Purpose:     Define modules (and versions) available on this CPU.
+// Usage:       Included from <cyg/hal/sh_regs.h>
+//
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Modules provided by the CPU
+
+#define CYGARC_SH_MOD_BCN  2
+#define CYGARC_SH_MOD_CPG  3
+#define CYGARC_SH_MOD_INTC 3
+#define CYGARC_SH_MOD_IRDA 1
+#define CYGARC_SH_MOD_PFC  1
+#define CYGARC_SH_MOD_SCI  1
+#define CYGARC_SH_MOD_SCIF 1
+#define CYGARC_SH_MOD_UBC  3
+
+//-----------------------------------------------------------------------------
+// Extra details for Cache Module (CAC)
+
+// Cache dimenions - one unified cache
+#define CYGARC_SH_MOD_CAC_SIZE        16384 // Size of cache in bytes
+#define CYGARC_SH_MOD_CAC_LINE_SIZE   16    // Size of a cache line
+#define CYGARC_SH_MOD_CAC_WAYS        4     // Associativity of the cache
+
+// Cache addressing information
+// way:   bits 13 - 12
+// entry: bits 11 -  4
+#define CYGARC_SH_MOD_CAC_ADDRESS_BASE   0xf0000000
+#define CYGARC_SH_MOD_CAC_ADDRESS_TOP    0xf0004000
+#define CYGARC_SH_MOD_CAC_ADDRESS_STEP   0x00000010
+// U : bit 1
+// V : bit 0
+// Writing zero to both forces a flush of the line if it is dirty.
+#define CYGARC_SH_MOD_CAC_ADDRESS_FLUSH  0x00000000
+
+//-----------------------------------------------------------------------------
+// Extra details for interrupt handling
+#define CYGARC_SH_SOFTWARE_IP_UPDATE
+
+#endif // CYGONCE_HAL_MOD_77xx_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_bsc.h
@@ -0,0 +1,180 @@
+//=============================================================================
+//
+//      mod_regs_bsc.h
+//
+//      BSC (bus state controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// Register definitions
+#define CYGARC_REG_BCR1                 0xffffff60
+#define CYGARC_REG_BCR2                 0xffffff62
+#define CYGARC_REG_WCR1                 0xffffff64
+#define CYGARC_REG_WCR2                 0xffffff66
+#define CYGARC_REG_MCR                  0xffffff68
+#define CYGARC_REG_DCR                  0xffffff6a
+#define CYGARC_REG_PCR                  0xffffff6c
+#define CYGARC_REG_RTCSR                0xffffff6e
+#define CYGARC_REG_RTCNT                0xffffff70
+#define CYGARC_REG_RTCOR                0xffffff72
+#define CYGARC_REG_RFCR                 0xffffff74
+
+#define CYGARC_REG_SDMR_AREA2_BASE      0xffffd000
+#define CYGARC_REG_SDMR_AREA3_BASE      0xffffe000
+
+#define CYGARC_REG_BCR1_DRAMTP2         0x0010
+#define CYGARC_REG_BCR1_DRAMTP1         0x0008
+#define CYGARC_REG_BCR1_DRAMTP0         0x0004
+
+// Bus widths for areas
+#define CYGARC_REG_BCR2_A6_8            0x1000
+#define CYGARC_REG_BCR2_A6_16           0x2000
+#define CYGARC_REG_BCR2_A6_32           0x3000
+#define CYGARC_REG_BCR2_A5_8            0x0400
+#define CYGARC_REG_BCR2_A5_16           0x0800
+#define CYGARC_REG_BCR2_A5_32           0x0c00
+#define CYGARC_REG_BCR2_A4_8            0x0100
+#define CYGARC_REG_BCR2_A4_16           0x0200
+#define CYGARC_REG_BCR2_A4_32           0x0300
+#define CYGARC_REG_BCR2_A3_8            0x0040
+#define CYGARC_REG_BCR2_A3_16           0x0080
+#define CYGARC_REG_BCR2_A3_32           0x00c0
+#define CYGARC_REG_BCR2_A2_8            0x0010
+#define CYGARC_REG_BCR2_A2_16           0x0020
+#define CYGARC_REG_BCR2_A2_32           0x0030
+
+// Memory type selection and other IO behavior controls
+#define CYGARC_REG_BCR1_PULA            0x8000 // Pin A25 to A0 Pull-Up
+#define CYGARC_REG_BCR1_PULD            0x4000 // Pin D31 to D0 Pull-Up
+#define CYGARC_REG_BCR1_HIZMEM          0x2000 // Hi-Z memory control
+#define CYGARC_REG_BCR1_HIZCNT          0x1000 // High-Z Control
+#define CYGARC_REG_BCR1_ENDIAN          0x0800 // Endian Flag
+#define CYGARC_REG_BCR1_A0_BST_MASK     0x0600 // Area 0 Burst ROM Control
+#define CYGARC_REG_BCR1_A0_BST_4        0x0200
+#define CYGARC_REG_BCR1_A0_BST_8        0x0400
+#define CYGARC_REG_BCR1_A0_BST_16       0x0600
+#define CYGARC_REG_BCR1_A5_BST_MASK     0x0180 // Area 5 Burst ROM Control
+#define CYGARC_REG_BCR1_A5_BST_4        0x0080
+#define CYGARC_REG_BCR1_A5_BST_8        0x0100
+#define CYGARC_REG_BCR1_A5_BST_16       0x0180
+#define CYGARC_REG_BCR1_A6_BST_MASK     0x0060 // Area 6 Burst ROM Control
+#define CYGARC_REG_BCR1_A6_BST_4        0x0020
+#define CYGARC_REG_BCR1_A6_BST_8        0x0040
+#define CYGARC_REG_BCR1_A6_BST_16       0x0060
+#define CYGARC_REG_BCR1_DRAMTP_MASK     0x001c // Area 2, Area 3 Memory Type
+#define CYGARC_REG_BCR1_A5PCM           0x0002 // Area 5 Bus Type
+#define CYGARC_REG_BCR1_A6PCM           0x0001 // Area 6 Bus Type
+
+// Intercycle wait states
+#define CYGARC_REG_WCR1_WAITSEL         0x8000 // WAIT Sampling Timing Select
+#define CYGARC_REG_WCR1_A6I_MASK        0x3000 // Intercycle Idle Specification
+#define CYGARC_REG_WCR1_A6I_SHIFT       12
+#define CYGARC_REG_WCR1_A5I_MASK        0x0c00
+#define CYGARC_REG_WCR1_A5I_SHIFT       10
+#define CYGARC_REG_WCR1_A4I_MASK        0x0300
+#define CYGARC_REG_WCR1_A4I_SHIFT       8
+#define CYGARC_REG_WCR1_A3I_MASK        0x00c0
+#define CYGARC_REG_WCR1_A3I_SHIFT       6
+#define CYGARC_REG_WCR1_A2I_MASK        0x0030
+#define CYGARC_REG_WCR1_A2I_SHIFT       4
+#define CYGARC_REG_WCR1_A0I_MASK        0x0003
+#define CYGARC_REG_WCR1_A0I_SHIFT       0
+
+#define CYGARC_REG_WCR1_0WS         0
+#define CYGARC_REG_WCR1_1WS         1
+#define CYGARC_REG_WCR1_2WS         2
+#define CYGARC_REG_WCR1_3WS         3
+
+
+// Wait states
+#define CYGARC_REG_WCR2_A6_MASK         0xe000 // Wait states + burst pitch
+#define CYGARC_REG_WCR2_A6_SHIFT        13
+#define CYGARC_REG_WCR2_A5_MASK         0x1c00 // Wait states + burst pitch
+#define CYGARC_REG_WCR2_A5_SHIFT        10
+#define CYGARC_REG_WCR2_A4_MASK         0x0380 // Wait states
+#define CYGARC_REG_WCR2_A4_SHIFT        7
+#define CYGARC_REG_WCR2_A3_MASK         0x0060 // Wait states / CAS latency
+#define CYGARC_REG_WCR2_A3_SHIFT        5
+#define CYGARC_REG_WCR2_A2_MASK         0x0018 // Wait states / CAS latency
+#define CYGARC_REG_WCR2_A2_SHIFT        3
+#define CYGARC_REG_WCR2_A0_MASK         0x0007 // Wait states + burst pitch
+#define CYGARC_REG_WCR2_A0_SHIFT        0
+
+#define CYGARC_REG_WCR2_0WS             0
+#define CYGARC_REG_WCR2_1WS             1
+#define CYGARC_REG_WCR2_2WS             2
+#define CYGARC_REG_WCR2_3WS             3
+#define CYGARC_REG_WCR2_4WS             4
+#define CYGARC_REG_WCR2_6WS             5
+#define CYGARC_REG_WCR2_8WS             6
+#define CYGARC_REG_WCR2_10WS            7
+
+//--------------------------------------------------------------------------
+// Additional type definitions
+#if (CYGARC_SH_MOD_BCN > 1)
+# define CYGARC_REG_BCR3                0xffffff7e
+#endif
+
+
+
+//-----------------------------------------------------------------------------
+// Calculate constants needed to drive the proper SDRAM refresh rate. Argument
+// is delay between required refresh events in microseconds (us). Should be
+// available off the SDRAM spec sheet.
+// These should be a part of a fully CDLicized memory controller setup.
+#define CYGARC_RTCSR_PRESCALE(_r_)                                      \
+(((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(4*1000000))<256) ? 4 :              \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(16*1000000))<256) ? 16 :            \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(64*1000000))<256) ? 64 :            \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(256*1000000))<256) ? 256 :          \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(1024*1000000))<256) ? 1024 :        \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(2048*1000000))<256) ? 2048 : 4096)
+
+// These two macros provide the static values we need to stuff into the
+// registers.
+#define CYGARC_RTCSR_CKSx(_r_)                                  \
+    ((   4 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x08 :              \
+     (  16 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x10 :              \
+     (  64 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x18 :              \
+     ( 256 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x20 :              \
+     (1024 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x28 :              \
+     (2048 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x30 : 0x38 )
+
+#define CYGARC_RTCSR_N(_r_)        \
+       (CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(CYGARC_RTCSR_PRESCALE(_r_)*1000000))
+
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_cac.h
@@ -0,0 +1,66 @@
+//=============================================================================
+//
+//      mod_regs_cac.h
+//
+//      CAC (cache) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Besides the below, cache sizes are defined in the CPU variant module
+// headers (mod_77xx.h).
+
+//--------------------------------------------------------------------------
+// Cache registers
+#define CYGARC_REG_CCR                  0xffffffec
+
+#define CYGARC_REG_CCR_RA               0x00000020
+#define CYGARC_REG_CCR_CF               0x00000008
+#define CYGARC_REG_CCR_CB               0x00000004
+#define CYGARC_REG_CCR_WT               0x00000002
+#define CYGARC_REG_CCR_CE               0x00000001
+
+
+//--------------------------------------------------------------------------
+// Address array access
+// Address part (base/top/step specified in mod file)
+#define CYGARC_REG_CACHE_ADDRESS_ADDRESS 0x00000008 // compare address
+
+// Data part
+#define CYGARC_REG_CACHE_ADDRESS_TAG_Mask 0x1ffffc00
+#define CYGARC_REG_CACHE_ADDRESS_U 0x00000002 // updated (contains dirty data)
+#define CYGARC_REG_CACHE_ADDRESS_V 0x00000001 // valid
+
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_cpg.h
@@ -0,0 +1,213 @@
+//=============================================================================
+//
+//      mod_regs_cpg.h
+//
+//      CPG (clock pulse generator) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// Oscillator control registers
+#define CYGARC_REG_FRQCR                0xffffff80
+#define CYGARC_REG_WTCNT                0xffffff84 // read 8bit, write 16bit
+#define CYGARC_REG_WTCSR                0xffffff86 // read 8bit, write 16bit
+
+#define CYGARC_REG_WTCNT_WRITE          0x5a00     // top 8bit value for write
+
+#define CYGARC_REG_WTCSR_WRITE          0xa500     // top 8bit value for write
+#define CYGARC_REG_WTCSR_TME            0x80       // timer enable
+#define CYGARC_REG_WTCSR_WT_IT          0x40       // watchdog(1)/interval(0)
+#define CYGARC_REG_WTCSR_RSTS           0x20       // manual(1)/poweron(0)
+#define CYGARC_REG_WTCSR_WOVF           0x10       // watchdog overflow
+#define CYGARC_REG_WTCSR_IOVF           0x08       // interval overflow
+#define CYGARC_REG_WTCSR_CKS2           0x04       // clock select 2
+#define CYGARC_REG_WTCSR_CKS1           0x02       // clock select 1
+#define CYGARC_REG_WTCSR_CKS0           0x01       // clock select 0
+#define CYGARC_REG_WTCSR_CKSx_MASK      0x07       // clock select mask
+// This is the period (in us) between watchdog reset and overflow.
+// Note: We use max timeout delay for now.
+#define CYGARC_REG_WTCSR_CKSx_SETTING   0x07       // max delay
+
+#define CYGARC_REG_WTCSR_PERIOD         ((1000000000/(CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/4096))*256)
+
+// Translate various CDL clock configurations to register equivalents
+// for the various CPG versions
+#if   (CYGARC_SH_MOD_CPG == 1) // ---------------------------- V1
+
+// PLL1
+#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0) || (CYGHWR_HAL_SH_OOC_PLL_1 == 1)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 2)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0010
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 4)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0020
+#else
+# error "Unsupported PLL1 setting"
+#endif
+
+// Divider1
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0004
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0008
+#else
+# error "Unsupported Divider1 setting"
+#endif
+
+// Divider2
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0001
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0002
+#else
+# error "Unsupported Divider1 setting"
+#endif
+
+// CKOEN - set in all modes but 7
+#if (CYGHWR_HAL_SH_OOC_CLOCK_MODE != 7)
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0100
+#else
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
+#endif
+
+#elif (CYGARC_SH_MOD_CPG == 2) // ---------------------------- V2
+
+// PLL1
+#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0) || (CYGHWR_HAL_SH_OOC_PLL_1 == 1)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 2)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0010
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 4)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0020
+#else
+# error "Unsupported PLL1 setting"
+#endif
+
+// Divider1
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0004
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0008
+#else
+# error "Unsupported Divider1 setting"
+#endif
+
+// Divider2
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0001
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0002
+#else
+# error "Unsupported Divider1 setting"
+#endif
+
+// CKOEN - set in all modes but 2
+#if (CYGHWR_HAL_SH_OOC_CLOCK_MODE != 2)
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0100
+#else
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
+#endif
+
+#elif (CYGARC_SH_MOD_CPG == 3) // ---------------------------- V3
+
+// PLL1
+#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0) || (CYGHWR_HAL_SH_OOC_PLL_1 == 1)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 2)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0010
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 3)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x8000
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 4)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0020
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 6)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x8010
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 8)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0030
+#else
+# error "Unsupported PLL1 setting"
+#endif
+
+// Divider1
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0004
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 3)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x4000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_1 == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER1 0x0008
+#else
+# error "Unsupported Divider1 setting"
+#endif
+
+// Divider2
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0001
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 3)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x2000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x0002
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_2 == 6)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER2 0x2002
+#else
+# error "Unsupported Divider2 setting"
+#endif
+
+// CKOEN - set in modes 0-2
+#if (CYGHWR_HAL_SH_OOC_CLOCK_MODE <= 2)
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0100
+#else
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
+#endif
+
+#else
+
+# error "Unsupported CPG version"
+
+#endif
+
+// Init value
+#define CYGARC_REG_FRQCR_INIT (CYGARC_REG_FRQCR_INIT_PLL1|CYGARC_REG_FRQCR_INIT_DIVIDER1|CYGARC_REG_FRQCR_INIT_DIVIDER2|CYGARC_REG_FRQCR_INIT_CKOEN)
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_dma.h
@@ -0,0 +1,111 @@
+//=============================================================================
+//
+//      mod_regs_dma.h
+//
+//      DMA (direct memory access) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// DMA Controller registers
+
+#define CYGARC_REG_SAR0                 0xa4000020
+#define CYGARC_REG_DAR0                 0xa4000024
+#define CYGARC_REG_DMATCR0              0xa4000028
+#define CYGARC_REG_CHCR0                0xa400002c
+#define CYGARC_REG_SAR1                 0xa4000030
+#define CYGARC_REG_DAR1                 0xa4000034
+#define CYGARC_REG_DMATCR1              0xa4000038
+#define CYGARC_REG_CHCR1                0xa400003c
+#define CYGARC_REG_SAR2                 0xa4000040
+#define CYGARC_REG_DAR2                 0xa4000044
+#define CYGARC_REG_DMATCR2              0xa4000048
+#define CYGARC_REG_CHCR2                0xa400004c
+#define CYGARC_REG_SAR3                 0xa4000050
+#define CYGARC_REG_DAR3                 0xa4000054
+#define CYGARC_REG_DMATCR3              0xa4000058
+#define CYGARC_REG_CHCR3                0xa400005c
+#define CYGARC_REG_DMAOR                0xa4000060
+
+// Offsets from base register
+#define CYGARC_REG_SAR                  0x00
+#define CYGARC_REG_DAR                  0x04
+#define CYGARC_REG_DMATCR               0x08
+#define CYGARC_REG_CHCR                 0x0c
+
+
+// DMA Channel Control Register. If there's a digit suffix to CHCR the flag
+// is only valid in the listed channels.
+#define CYGARC_REG_CHCR3_DI             0x00100000 // direct/indirect selection
+#define CYGARC_REG_CHCR2_RO             0x00080000 // source address reload
+#define CYGARC_REG_CHCR01_RL            0x00040000 // request check level
+#define CYGARC_REG_CHCR01_AM            0x00020000 // acknowledge mode
+#define CYGARC_REG_CHCR01_AL            0x00010000 // acknowledge level
+#define CYGARC_REG_CHCR_DM1             0x00008000 // destination address mode
+#define CYGARC_REG_CHCR_DM0             0x00004000
+#define CYGARC_REG_CHCR_SM1             0x00002000 // source address mode
+#define CYGARC_REG_CHCR_SM0             0x00001000
+#define CYGARC_REG_CHCR_RS3             0x00000800 // resource select
+#define CYGARC_REG_CHCR_RS2             0x00000400
+#define CYGARC_REG_CHCR_RS1             0x00000200
+#define CYGARC_REG_CHCR_RS0             0x00000100
+#define CYGARC_REG_CHCR01_DS            0x00000040 // DREQ select
+#define CYGARC_REG_CHCR_TM              0x00000020 // transmit mode
+#define CYGARC_REG_CHCR_TS1             0x00000010 // transmit size
+#define CYGARC_REG_CHCR_TS0             0x00000008
+#define CYGARC_REG_CHCR_IE              0x00000004 // interrupt enable
+#define CYGARC_REG_CHCR_TE              0x00000002 // transfer end
+#define CYGARC_REG_CHCR_DE              0x00000001 // DMAC enable
+
+// Resource select options
+#define CYGARC_REG_CHCR_RS_EXT_DUAL     0x00000000
+#define CYGARC_REG_CHCR_RS_EXT_EX_DAC   0x00000100
+#define CYGARC_REG_CHCR_RS_EXT_DAC_EX   0x00000300
+#define CYGARC_REG_CHCR_RS_AUTO         0x00000400
+#define CYGARC_REG_CHCR_RS_IRDA_TX      0x00000a00
+#define CYGARC_REG_CHCR_RS_IRDA_RX      0x00000b00
+#define CYGARC_REG_CHCR_RS_SCIF_TX      0x00000c00
+#define CYGARC_REG_CHCR_RS_SCIF_RX      0x00000d00
+#define CYGARC_REG_CHCR_RS_AD           0x00000e00
+#define CYGARC_REG_CHCR_RS_CMT          0x00000f00
+
+
+// DMA Operation Register
+#define CYGARC_REG_DMAOR_PR1            0x0200     // priority level
+#define CYGARC_REG_DMAOR_PR0            0x0100
+#define CYGARC_REG_DMAOR_AE             0x0004     // address error flag
+#define CYGARC_REG_DMAOR_NMIF           0x0002     // NMI flag
+#define CYGARC_REG_DMAOR_DME            0x0001     // DMA master enable
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_intc.h
@@ -0,0 +1,158 @@
+//=============================================================================
+//
+//      mod_regs_intc.h
+//
+//      INTC (interrupt controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// Interrupt registers, module type 1
+#define CYGARC_REG_EXCEVT               0xffffffd4
+#define CYGARC_REG_INTEVT               0xffffffd8
+
+#define CYGARC_REG_ICR                  0xfffffee0
+#define CYGARC_REG_IPRA                 0xfffffee2
+#define CYGARC_REG_IPRB                 0xfffffee4
+
+#define CYGARC_REG_IPRA_TMU0_MASK       0xf000
+#define CYGARC_REG_IPRA_TMU0_PRI1       0x1000
+#define CYGARC_REG_IPRA_TMU1_MASK       0x0f00
+#define CYGARC_REG_IPRA_TMU1_PRI1       0x0100
+#define CYGARC_REG_IPRA_TMU2_MASK       0x00f0
+#define CYGARC_REG_IPRA_TMU2_PRI1       0x0010
+#define CYGARC_REG_IPRA_RTC_MASK        0x000f
+#define CYGARC_REG_IPRA_RTC_PRI1        0x0001
+
+#define CYGARC_REG_IPRB_WDT_MASK        0xf000
+#define CYGARC_REG_IPRB_WDT_PRI1        0x1000
+#define CYGARC_REG_IPRB_REF_MASK        0x0f00
+#define CYGARC_REG_IPRB_REF_PRI1        0x0100
+#define CYGARC_REG_IPRB_SCI_MASK        0x00f0
+#define CYGARC_REG_IPRB_SCI_PRI1        0x0010
+
+
+#if (CYGARC_SH_MOD_INTC >= 2)
+# define CYGARC_REG_INTEVT2             0xa4000000
+# define CYGARC_REG_IRR0                0xa4000004
+# define CYGARC_REG_IRR1                0xa4000006
+# define CYGARC_REG_IRR2                0xa4000008
+# define CYGARC_REG_ICR0                CYGARC_REG_ICR
+# define CYGARC_REG_ICR1                0xa4000010
+# define CYGARC_REG_ICR2                0xa4000012
+# define CYGARC_REG_INTER               0xa4000014
+# define CYGARC_REG_IPRC                0xa4000016
+# define CYGARC_REG_IPRD                0xa4000018
+# define CYGARC_REG_IPRE                0xa400001a
+
+
+#define CYGARC_REG_IPRC_IRQ3_MASK         0xf000
+#define CYGARC_REG_IPRC_IRQ3_PRI1         0x1000
+#define CYGARC_REG_IPRC_IRQ2_MASK         0x0f00
+#define CYGARC_REG_IPRC_IRQ2_PRI1         0x0100
+#define CYGARC_REG_IPRC_IRQ1_MASK         0x00f0
+#define CYGARC_REG_IPRC_IRQ1_PRI1         0x0010
+#define CYGARC_REG_IPRC_IRQ0_MASK         0x000f
+#define CYGARC_REG_IPRC_IRQ0_PRI1         0x0001
+
+#define CYGARC_REG_IPRD_PINT07_MASK       0xf000
+#define CYGARC_REG_IPRD_PINT07_PRI1       0x1000
+#define CYGARC_REG_IPRD_PINT8F_MASK       0x0f00
+#define CYGARC_REG_IPRD_PINT8F_PRI1       0x0100
+#define CYGARC_REG_IPRD_IRQ5_MASK         0x00f0
+#define CYGARC_REG_IPRD_IRQ5_PRI1         0x0010
+#define CYGARC_REG_IPRD_IRQ4_MASK         0x000f
+#define CYGARC_REG_IPRD_IRQ4_PRI1         0x0001
+
+#define CYGARC_REG_IPRE_DMAC_MASK         0xf000
+#define CYGARC_REG_IPRE_DMAC_PRI1         0x1000
+#define CYGARC_REG_IPRE_IRDA_MASK         0x0f00
+#define CYGARC_REG_IPRE_IRDA_PRI1         0x0100
+#define CYGARC_REG_IPRE_SCIF_MASK         0x00f0
+#define CYGARC_REG_IPRE_SCIF_PRI1         0x0010
+#define CYGARC_REG_IPRE_ADC_MASK          0x000f
+#define CYGARC_REG_IPRE_ADC_PRI1          0x0001
+
+#define CYGARC_REG_ICR1_MAI               0x8000
+#define CYGARC_REG_ICR1_IRQLVL            0x4000
+#define CYGARC_REG_ICR1_BLMSK             0x2000
+#define CYGARC_REG_ICR1_IRLSEN            0x1000
+#define CYGARC_REG_ICR1_SENSE_IRQ5_shift  10
+#define CYGARC_REG_ICR1_SENSE_IRQ4_shift  8
+#define CYGARC_REG_ICR1_SENSE_IRQ3_shift  6
+#define CYGARC_REG_ICR1_SENSE_IRQ2_shift  4
+#define CYGARC_REG_ICR1_SENSE_IRQ1_shift  2
+#define CYGARC_REG_ICR1_SENSE_IRQ0_shift  0
+#define CYGARC_REG_ICR1_SENSE_LEVEL       0x2
+#define CYGARC_REG_ICR1_SENSE_UP          0x1
+
+// The (initial) IRQ mode is controlled by configuration.
+#ifdef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
+# ifdef CYGHWR_HAL_SH_IRQ_ENABLE_IRLS_INTERRUPTS
+#  define CYGARC_REG_ICR1_INIT (CYGARC_REG_ICR1_IRLSEN|CYGARC_REG_ICR1_IRQLVL)
+# else
+#  define CYGARC_REG_ICR1_INIT (CYGARC_REG_ICR1_IRQLVL)
+# endif
+#else
+# define CYGARC_REG_ICR1_INIT 0x0000
+#endif
+
+#define CYGARC_REG_IRR0_PINT07            0x80
+#define CYGARC_REG_IRR0_PINT8F            0x40
+#define CYGARC_REG_IRR0_IRQ5              0x20
+#define CYGARC_REG_IRR0_IRQ4              0x10
+#define CYGARC_REG_IRR0_IRQ3              0x08
+#define CYGARC_REG_IRR0_IRQ2              0x04
+#define CYGARC_REG_IRR0_IRQ1              0x02
+#define CYGARC_REG_IRR0_IRQ0              0x01
+
+#endif
+
+
+
+#if (CYGARC_SH_MOD_INTC >= 3)
+# define CYGARC_REG_IRR3                0xa400000a
+# define CYGARC_REG_IRR4                0xa400000c
+# define CYGARC_REG_IPRF                0xa400001c
+
+#define CYGARC_REG_IPRF_LCDI_MASK         0x0f00
+#define CYGARC_REG_IPRF_LCDI_PRI1         0x0100
+#define CYGARC_REG_IPRF_PCC0_MASK         0x00f0
+#define CYGARC_REG_IPRF_PCC0_PRI1         0x0010
+#define CYGARC_REG_IPRF_PCC1_MASK         0x000f
+#define CYGARC_REG_IPRF_PCC1_PRI1         0x0001
+
+#endif
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_mmu.h
@@ -0,0 +1,50 @@
+//=============================================================================
+//
+//      mod_regs_mmu.h
+//
+//      MMU Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// MMU control registers
+#define CYGARC_REG_MMUCR                0xffffffe0
+
+#define CYGARC_REG_MMUCR_SV             0x00000100
+#define CYGARC_REG_MMUCR_RC_MASK        0x000000c0
+#define CYGARC_REG_MMUCR_TF             0x00000004
+#define CYGARC_REG_MMUCR_IX             0x00000002
+#define CYGARC_REG_MMUCR_AT             0x00000001
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_pfc.h
@@ -0,0 +1,100 @@
+//=============================================================================
+//
+//      mod_regs_pfc.h
+//
+//      PFC (pin function controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#define CYGARC_REG_PACR                 0xa4000100 // port A control
+#define CYGARC_REG_PBCR                 0xa4000102 // port B control
+#define CYGARC_REG_PCCR                 0xa4000104 // port C control
+#define CYGARC_REG_PDCR                 0xa4000106 // port D control
+#define CYGARC_REG_PECR                 0xa4000108 // port E control
+#define CYGARC_REG_PFCR                 0xa400010a // port F control
+#define CYGARC_REG_PGCR                 0xa400010c // port G control
+#define CYGARC_REG_PHCR                 0xa400010e // port H control
+#define CYGARC_REG_PJCR                 0xa4000110 // port J control
+#define CYGARC_REG_PKCR                 0xa4000112 // port K control
+#define CYGARC_REG_PLCR                 0xa4000114 // port L control
+#define CYGARC_REG_SCPCR                0xa4000116 // SC port control
+
+#define CYGARC_REG_PADR                 0xa4000120 // port A data
+#define CYGARC_REG_PBDR                 0xa4000122 // port B data
+#define CYGARC_REG_PCDR                 0xa4000124 // port C data
+#define CYGARC_REG_PDDR                 0xa4000126 // port D data
+#define CYGARC_REG_PEDR                 0xa4000128 // port E data
+#define CYGARC_REG_PFDR                 0xa400012a // port F data
+#define CYGARC_REG_PGDR                 0xa400012c // port G data
+#define CYGARC_REG_PHDR                 0xa400012e // port H data
+#define CYGARC_REG_PJDR                 0xa4000130 // port J data
+#define CYGARC_REG_PKDR                 0xa4000132 // port K data
+#define CYGARC_REG_PLDR                 0xa4000134 // port L data
+#define CYGARC_REG_SCPDR                0xa4000136 // SC port data
+
+
+// Port C
+#define CYGARC_REG_PCCR_PC7_MASK        0xc000
+#define CYGARC_REG_PCCR_PC7_shift       14
+#define CYGARC_REG_PCCR_PC6_MASK        0x3000
+#define CYGARC_REG_PCCR_PC6_shift       12
+#define CYGARC_REG_PCCR_PC5_MASK        0x0c00
+#define CYGARC_REG_PCCR_PC5_shift       10
+#define CYGARC_REG_PCCR_PC4_MASK        0x0300
+#define CYGARC_REG_PCCR_PC4_shift       8
+#define CYGARC_REG_PCCR_PC3_MASK        0x00c0
+#define CYGARC_REG_PCCR_PC3_shift       6
+#define CYGARC_REG_PCCR_PC2_MASK        0x0030
+#define CYGARC_REG_PCCR_PC2_shift       4
+#define CYGARC_REG_PCCR_PC1_MASK        0x000c
+#define CYGARC_REG_PCCR_PC1_shift       2
+#define CYGARC_REG_PCCR_PC0_MASK        0x0003
+#define CYGARC_REG_PCCR_PC0_shift       0
+
+#define CYGARC_REG_PCCR_MD_OTHER        0x0
+#define CYGARC_REG_PCCR_MD_OUT          0x1
+#define CYGARC_REG_PCCR_MD_IN_ON        0x2
+#define CYGARC_REG_PCCR_MD_IN_OFF       0x3
+
+#define CYGARC_REG_PCDR_PC7DT           0x80
+#define CYGARC_REG_PCDR_PC6DT           0x40
+#define CYGARC_REG_PCDR_PC5DT           0x20
+#define CYGARC_REG_PCDR_PC4DT           0x10
+#define CYGARC_REG_PCDR_PC3DT           0x08
+#define CYGARC_REG_PCDR_PC2DT           0x04
+#define CYGARC_REG_PCDR_PC1DT           0x02
+#define CYGARC_REG_PCDR_PC0DT           0x01
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_rtc.h
@@ -0,0 +1,77 @@
+//=============================================================================
+//
+//      mod_regs_rtc.h
+//
+//      RTC (real time clock) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// RealTime Clock
+
+#define CYGARC_REG_RC64CNT              0xfffffec0
+#define CYGARC_REG_RSECCNT              0xfffffec2
+#define CYGARC_REG_RMINCNT              0xfffffec4
+#define CYGARC_REG_RHRCNT               0xfffffec6
+#define CYGARC_REG_RWKCNT               0xfffffec8
+#define CYGARC_REG_RDAYCNT              0xfffffeca
+#define CYGARC_REG_RMONCNT              0xfffffecc
+#define CYGARC_REG_RYRCNT               0xfffffece
+#define CYGARC_REG_RSECAR               0xfffffed0
+#define CYGARC_REG_RMINAR               0xfffffed2
+#define CYGARC_REG_RHRAR                0xfffffed4
+#define CYGARC_REG_RWKAR                0xfffffed6
+#define CYGARC_REG_RDAYAR               0xfffffed8
+#define CYGARC_REG_RMONAR               0xfffffeda
+#define CYGARC_REG_RCR1                 0xfffffedc
+#define CYGARC_REG_RCR2                 0xfffffede
+
+
+#define CYGARC_REG_RCR1_CF              0x80 // carry flag
+#define CYGARC_REG_RCR1_CIE             0x10 // carry interrupt enable
+#define CYGARC_REG_RCR1_AIE             0x08 // alarm interrupt enable
+#define CYGARC_REG_RCR1_AF              0x01 // alarm flag
+
+#define CYGARC_REG_RCR2_PEF             0x80 // periodic interrupt flag
+#define CYGARC_REG_RCR2_PES2            0x40 // periodic interrupt setting
+#define CYGARC_REG_RCR2_PES1            0x20
+#define CYGARC_REG_RCR2_PES0            0x10
+#define CYGARC_REG_RCR2_RTCEN           0x08 // RTC enable
+#define CYGARC_REG_RCR2_ADJ             0x04 // second adjustment
+#define CYGARC_REG_RCR2_RESET           0x02 // reset
+#define CYGARC_REG_RCR2_START           0x01 // start
+
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_ser.h
@@ -0,0 +1,278 @@
+//=============================================================================
+//
+//      mod_regs_ser.h
+//
+//      SCI, SCIF, and IRDA (serial) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+// Note:        All three serial module definitions kept in the same file
+//              since they share some of the information.
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//++++++ Module SCI ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//--------------------------------------------------------------------------
+// Serial registers. All 8 bit registers.
+#define CYGARC_REG_SCSMR                0xfffffe80 // serial mode register
+#define CYGARC_REG_SCBRR                0xfffffe82 // bit rate register
+#define CYGARC_REG_SCSCR                0xfffffe84 // serial control register
+#define CYGARC_REG_SCTDR                0xfffffe86 // transmit data register
+#define CYGARC_REG_SCSSR                0xfffffe88 // serial status register
+#define CYGARC_REG_SCRDR                0xfffffe8a // receive data register
+
+// Serial Mode Register
+#define CYGARC_REG_SCSMR_CA             0x80 // communication mode
+#define CYGARC_REG_SCSMR_CHR            0x40 // character length (7 if set)
+#define CYGARC_REG_SCSMR_PE             0x20 // parity enable
+#define CYGARC_REG_SCSMR_OE             0x10 // parity mode
+#define CYGARC_REG_SCSMR_STOP           0x08 // stop bit length
+#define CYGARC_REG_SCSMR_MP             0x04 // multiprocessor mode
+#define CYGARC_REG_SCSMR_CKS1           0x02 // clock select 1
+#define CYGARC_REG_SCSMR_CKS0           0x01 // clock select 0
+#define CYGARC_REG_SCSMR_CKSx_MASK      0x03 // mask
+
+// Serial Control Register
+#define CYGARC_REG_SCSCR_TIE            0x80 // transmit interrupt enable
+#define CYGARC_REG_SCSCR_RIE            0x40 // receive interrupt enable
+#define CYGARC_REG_SCSCR_TE             0x20 // transmit enable
+#define CYGARC_REG_SCSCR_RE             0x10 // receive enable
+#define CYGARC_REG_SCSCR_MPIE           0x08 // multiprocessor interrupt enable
+#define CYGARC_REG_SCSCR_TEIE           0x04 // transmit-end interrupt enable
+#define CYGARC_REG_SCSCR_CKE1           0x02 // clock enable 1
+#define CYGARC_REG_SCSCR_CKE0           0x01 // clock enable 0
+
+// Serial Status Register
+#define CYGARC_REG_SCSSR_TDRE           0x80 // transmit data register empty
+#define CYGARC_REG_SCSSR_RDRF           0x40 // receive data register full
+#define CYGARC_REG_SCSSR_ORER           0x20 // overrun error
+#define CYGARC_REG_SCSSR_FER            0x10 // framing error
+#define CYGARC_REG_SCSSR_PER            0x08 // parity error
+#define CYGARC_REG_SCSSR_TEND           0x04 // transmit end
+#define CYGARC_REG_SCSSR_MPB            0x02 // multiprocessor bit
+#define CYGARC_REG_SCSSR_MPBT           0x01 // multiprocessor bit transfer
+
+// When clearing the status register, always write the value:
+// CYGARC_REG_SCSSR_CLEARMASK & ~bit
+// to prevent other bits than the one of interest to be cleared.
+#define CYGARC_REG_SCSSR_CLEARMASK      0xf8
+
+
+#if (CYGARC_SH_MOD_SCI >= 2)
+# define CYGARC_REG_SCSPTR               0xfffffe7c // serial port register
+#endif
+
+
+// Baud rate values calculation, depending on peripheral clock (Pf)
+// n is CKS setting (0-3)
+// N = (Pf/(64*2^(2n-1)*B))-1
+// With CYGARC_SCBRR_CKSx providing the values 1, 4, 16, 64 we get
+//       N = (Pf/(32*_CKS*B))-1
+//
+// The CYGARC_SCBRR_OPTIMAL_CKS macro should compute the minimal CKS
+// setting for the given baud rate and peripheral clock.
+//
+// The error of the CKS+count value can be computed by:
+//  E(%) = ((Pf/((N+1)*B*(64^(n-1)))-1)*100 
+//
+#define CYGARC_SCBRR_PRESCALE(_b_) \
+((((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/1/(_b_))-1)<256) ? 1 : \
+ (((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/4/(_b_))-1)<256) ? 4 : \
+ (((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/16/(_b_))-1)<256) ? 16 : 64)
+
+// These two macros provide the static values we need to stuff into the
+// registers.
+#define CYGARC_SCBRR_CKSx(_b_) \
+    ((1 == CYGARC_SCBRR_PRESCALE(_b_)) ? 0 : \
+     (4 == CYGARC_SCBRR_PRESCALE(_b_)) ? 1 : \
+     (16 == CYGARC_SCBRR_PRESCALE(_b_)) ? 2 : 3)
+#define CYGARC_SCBRR_N(_b_)     \
+    (((_b_) < 4800) ? 0 :       \
+      ((_b_) > 115200) ? 0 :    \
+       ((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/CYGARC_SCBRR_PRESCALE(_b_)/(_b_))-1))
+
+
+//++++++ Module IRDA +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#ifdef CYGARC_SH_MOD_IRDA
+
+//--------------------------------------------------------------------------
+// IrDA (infrared data association). Can also act as regular serial w FIFO
+
+#define CYGARC_REG_SCSMR1               0xa4000140
+#define CYGARC_REG_SCBRR1               0xa4000142
+#define CYGARC_REG_SCSCR1               0xa4000144
+#define CYGARC_REG_SCFTDR1              0xa4000146
+#define CYGARC_REG_SCSSR1               0xa4000148
+#define CYGARC_REG_SCFRDR1              0xa400014a
+#define CYGARC_REG_SCFCR1               0xa400014c
+#define CYGARC_REG_SCFDR1               0xa400014e
+
+// Serial Mode Register
+#define CYGARC_REG_SCSMR1_IRMOD          0x80 // IrDA Mode
+#define CYGARC_REG_SCSMR1_ICK_MASK       0x78 // IR pulse width
+#define CYGARC_REG_SCSMR1_PSEL           0x04 // IR pulse selector(?)
+#define CYGARC_REG_SCSMR1_CKS1           0x02 // clock select 1
+#define CYGARC_REG_SCSMR1_CKS0           0x01 // clock select 0
+#define CYGARC_REG_SCSMR1_CKSx_MASK      0x03 // mask
+
+// Serial Control Register
+#define CYGARC_REG_SCSCR1_TIE            0x80 // transmit interrupt enable
+#define CYGARC_REG_SCSCR1_RIE            0x40 // receive interrupt enable
+#define CYGARC_REG_SCSCR1_TE             0x20 // transmit enable
+#define CYGARC_REG_SCSCR1_RE             0x10 // receive enable
+#define CYGARC_REG_SCSCR1_CKE1           0x02 // clock enable 1
+#define CYGARC_REG_SCSCR1_CKE0           0x01 // clock enable 0
+
+// Serial Status Register
+#define CYGARC_REG_SCSSR1_PER_MASK       0xf000 // number of parity errors
+#define CYGARC_REG_SCSSR1_PER_shift      12
+#define CYGARC_REG_SCSSR1_FER_MASK       0x0f00 // number of framing errors
+#define CYGARC_REG_SCSSR1_FER_shift      8
+#define CYGARC_REG_SCSSR1_ER             0x0080 // receive error
+#define CYGARC_REG_SCSSR1_TEND           0x0040 // transmit end
+#define CYGARC_REG_SCSSR1_TDFE           0x0020 // transmit fifo data empty
+#define CYGARC_REG_SCSSR1_BRK            0x0010 // break detection
+#define CYGARC_REG_SCSSR1_FER            0x0008 // framing error
+#define CYGARC_REG_SCSSR1_PER            0x0004 // parity error
+#define CYGARC_REG_SCSSR1_RDF            0x0002 // receive fifo data full
+#define CYGARC_REG_SCSSR1_DR             0x0001 // receive data ready
+
+// When clearing the status register, always write the value:
+// CYGARC_REG_SCSSR2_CLEARMASK & ~bit
+// to prevent other bits than the one of interest to be cleared.
+#define CYGARC_REG_SCSSR1_CLEARMASK      0xf3
+
+// Serial FIFO Control Register
+#define CYGARC_REG_SCFCR1_RTRG_MASK      0xc0   // receive fifo data trigger
+#define CYGARC_REG_SCFCR1_RTRG_1         0x00   // trigger on 1 char 
+#define CYGARC_REG_SCFCR1_RTRG_4         0x40   // trigger on 4 chars
+#define CYGARC_REG_SCFCR1_RTRG_8         0x80   // trigger on 8 chars
+#define CYGARC_REG_SCFCR1_RTRG_14        0xc0   // trigger on 14 chars 
+
+#define CYGARC_REG_SCFCR1_TTRG_MASK      0x30   // transmit fifo data trigger
+#define CYGARC_REG_SCFCR1_TTRG_8         0x00   // trigger on 8 chars 
+#define CYGARC_REG_SCFCR1_TTRG_4         0x10   // trigger on 4 chars
+#define CYGARC_REG_SCFCR1_TTRG_2         0x20   // trigger on 2 chars
+#define CYGARC_REG_SCFCR1_TTRG_1         0x30   // trigger on 1 char
+
+#define CYGARC_REG_SCFCR1_MCE            0x08   // modem control enable
+#define CYGARC_REG_SCFCR1_TFRST          0x04   // transmit fifo reset
+#define CYGARC_REG_SCFCR1_RFRST          0x02   // receive fifo reset
+#define CYGARC_REG_SCFCR1_LOOP           0x01   // loop back test
+
+
+// Serial FIFO Data Count Set Register
+#define CYGARC_REG_SCFDR1_RCOUNT_MASK    0x001f // number of chars in r fifo
+#define CYGARC_REG_SCFDR1_RCOUNT_shift   0
+#define CYGARC_REG_SCFDR1_TCOUNT_MASK    0x1f00 // number of chars in t fifo
+#define CYGARC_REG_SCFDR1_TCOUNT_shift   8
+
+#endif // CYGARC_SH_MOD_IRDA
+
+//++++++ Module SCIF +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#ifdef CYGARC_SH_MOD_SCIF
+
+//--------------------------------------------------------------------------
+// Serial w FIFO registers
+
+#define CYGARC_REG_SCSMR2               0xa4000150 // Serial mode
+#define CYGARC_REG_SCBRR2               0xa4000152 // Bit rate
+#define CYGARC_REG_SCSCR2               0xa4000154 // Serial control
+#define CYGARC_REG_SCFTDR2              0xa4000156 // Transmit FIFO data
+#define CYGARC_REG_SCSSR2               0xa4000158 // Serial status
+#define CYGARC_REG_SCFRDR2              0xa400015a // Receive data FIFO
+#define CYGARC_REG_SCFCR2               0xa400015c // FIFO control register
+#define CYGARC_REG_SCFDR2               0xa400015e // FIFO data count set
+
+// Serial Mode Register
+#define CYGARC_REG_SCSMR2_CHR            0x40 // character length (7 if set)
+#define CYGARC_REG_SCSMR2_PE             0x20 // parity enable
+#define CYGARC_REG_SCSMR2_OE             0x10 // parity mode
+#define CYGARC_REG_SCSMR2_STOP           0x08 // stop bit length
+#define CYGARC_REG_SCSMR2_CKS1           0x02 // clock select 1
+#define CYGARC_REG_SCSMR2_CKS0           0x01 // clock select 0
+#define CYGARC_REG_SCSMR2_CKSx_MASK      0x03 // mask
+
+// Serial Control Register
+#define CYGARC_REG_SCSCR2_TIE            0x80 // transmit interrupt enable
+#define CYGARC_REG_SCSCR2_RIE            0x40 // receive interrupt enable
+#define CYGARC_REG_SCSCR2_TE             0x20 // transmit enable
+#define CYGARC_REG_SCSCR2_RE             0x10 // receive enable
+#define CYGARC_REG_SCSCR2_CKE1           0x02 // clock enable 1
+#define CYGARC_REG_SCSCR2_CKE0           0x01 // clock enable 0
+
+// Serial Status Register
+#define CYGARC_REG_SCSSR2_PER_MASK       0xf000 // number of parity errors
+#define CYGARC_REG_SCSSR2_PER_shift      12
+#define CYGARC_REG_SCSSR2_FER_MASK       0x0f00 // number of framing errors
+#define CYGARC_REG_SCSSR2_FER_shift      8
+#define CYGARC_REG_SCSSR2_ER             0x0080 // receive error
+#define CYGARC_REG_SCSSR2_TEND           0x0040 // transmit end
+#define CYGARC_REG_SCSSR2_TDFE           0x0020 // transmit fifo data empty
+#define CYGARC_REG_SCSSR2_BRK            0x0010 // break detection
+#define CYGARC_REG_SCSSR2_FER            0x0008 // framing error
+#define CYGARC_REG_SCSSR2_PER            0x0004 // parity error
+#define CYGARC_REG_SCSSR2_RDF            0x0002 // receive fifo data full
+#define CYGARC_REG_SCSSR2_DR             0x0001 // receive data ready
+
+// When clearing the status register, always write the value:
+// CYGARC_REG_SCSSR2_CLEARMASK & ~bit
+// to prevent other bits than the one of interest to be cleared.
+#define CYGARC_REG_SCSSR2_CLEARMASK      0xf3
+
+// Serial FIFO Control Register
+#define CYGARC_REG_SCFCR2_RTRG_MASK      0xc0   // receive fifo data trigger
+#define CYGARC_REG_SCFCR2_RTRG_1         0x00   // trigger on 1 char 
+#define CYGARC_REG_SCFCR2_RTRG_4         0x40   // trigger on 4 chars
+#define CYGARC_REG_SCFCR2_RTRG_8         0x80   // trigger on 8 chars
+#define CYGARC_REG_SCFCR2_RTRG_14        0xc0   // trigger on 14 chars 
+
+#define CYGARC_REG_SCFCR2_TTRG_MASK      0x30   // transmit fifo data trigger
+#define CYGARC_REG_SCFCR2_TTRG_8         0x00   // trigger on 8 chars 
+#define CYGARC_REG_SCFCR2_TTRG_4         0x10   // trigger on 4 chars
+#define CYGARC_REG_SCFCR2_TTRG_2         0x20   // trigger on 2 chars
+#define CYGARC_REG_SCFCR2_TTRG_1         0x30   // trigger on 1 char
+
+#define CYGARC_REG_SCFCR2_MCE            0x08   // modem control enable
+#define CYGARC_REG_SCFCR2_TFRST          0x04   // transmit fifo reset
+#define CYGARC_REG_SCFCR2_RFRST          0x02   // receive fifo reset
+#define CYGARC_REG_SCFCR2_LOOP           0x01   // loop back test
+
+
+// Serial FIFO Data Count Set Register
+#define CYGARC_REG_SCFDR2_RCOUNT_MASK    0x001f // number of chars in r fifo
+#define CYGARC_REG_SCFDR2_RCOUNT_shift   0
+#define CYGARC_REG_SCFDR2_TCOUNT_MASK    0x1f00 // number of chars in t fifo
+#define CYGARC_REG_SCFDR2_TCOUNT_shift   8
+
+#endif // CYGARC_SH_MOD_SCIF
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_tmu.h
@@ -0,0 +1,79 @@
+//=============================================================================
+//
+//      mod_regs_tmu.h
+//
+//      TMU (timer unit) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// TMU registers
+#define CYGARC_REG_TOCR                 0xfffffe90 //  8 bit
+#define CYGARC_REG_TSTR                 0xfffffe92 //  8 bit
+#define CYGARC_REG_TCOR0                0xfffffe94 // 32 bit
+#define CYGARC_REG_TCNT0                0xfffffe98 // 32 bit
+#define CYGARC_REG_TCR0                 0xfffffe9c // 16 bit
+#define CYGARC_REG_TCOR1                0xfffffea0 // 32 bit
+#define CYGARC_REG_TCNT1                0xfffffea4 // 32 bit
+#define CYGARC_REG_TCR1                 0xfffffea8 // 16 bit
+#define CYGARC_REG_TCOR2                0xfffffeac // 32 bit
+#define CYGARC_REG_TCNT2                0xfffffeb0 // 32 bit
+#define CYGARC_REG_TCR2                 0xfffffeb4 // 16 bit
+#define CYGARC_REG_TCPR2                0xfffffeb8 // 32 bit
+
+// TSTR
+#define CYGARC_REG_TSTR_STR0            0x0001
+#define CYGARC_REG_TSTR_STR1            0x0002
+#define CYGARC_REG_TSTR_STR2            0x0004
+
+// TCR0/1/2
+#define CYGARC_REG_TCR_TPSC0            0x0001
+#define CYGARC_REG_TCR_TPSC1            0x0002
+#define CYGARC_REG_TCR_TPSC2            0x0004
+#define CYGARC_REG_TCR_CKEG0            0x0008
+#define CYGARC_REG_TCR_CKEG1            0x0010
+#define CYGARC_REG_TCR_UNIE             0x0020
+#define CYGARC_REG_TCR_UNF              0x0100
+
+#define CYGARC_REG_TCR_TPSC_4           (0)
+#define CYGARC_REG_TCR_TPSC_16          (CYGARC_REG_TCR_TPSC0)
+#define CYGARC_REG_TCR_TPSC_64          (CYGARC_REG_TCR_TPSC1)
+#define CYGARC_REG_TCR_TPSC_256         (CYGARC_REG_TCR_TPSC0|CYGARC_REG_TCR_TPSC1)
+
+// TCR2 additional bits
+#define CYGARC_REG_TCR_ICPE0            0x0040
+#define CYGARC_REG_TCR_ICPE1            0x0080
+#define CYGARC_REG_TCR_ICPF             0x0200
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/mod_regs_ubc.h
@@ -0,0 +1,95 @@
+//=============================================================================
+//
+//      mod_regs_ubc.h
+//
+//      UBC (user break controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// User Break Control
+#define CYGARC_REG_BRCR                 0xffffff98 // 16 bit
+
+#define CYGARC_REG_BARA                 0xffffffb0 // 32 bit
+#define CYGARC_REG_BAMRA                0xffffffb4 // 8 bit (v1) / 32 bit
+#define CYGARC_REG_BBRA                 0xffffffb8 // 16 bit
+#define CYGARC_REG_BASRA                0xffffffe4 // 8 bit
+
+#define CYGARC_REG_BARB                 0xffffffa0 // 32 bit
+#define CYGARC_REG_BAMRB                0xffffffa4 // 8 bit (v1) / 32 bit
+#define CYGARC_REG_BASRB                0xffffffe8 // 8 bit
+#define CYGARC_REG_BBRB                 0xffffffa8 // 16 bit
+#define CYGARC_REG_BDRB                 0xffffff90 // 32 bit
+#define CYGARC_REG_BDMRB                0xffffff94 // 32 bit
+
+
+#define CYGARC_REG_BRCR_CMFA            0x8000 // condition match flag A
+#define CYGARC_REG_BRCR_CMFB            0x4000 // condition match flag B
+#define CYGARC_REG_BRCR_PCBA            0x0400 // post execute channel A
+#define CYGARC_REG_BRCR_DBEB            0x0080 // data break enable B
+#define CYGARC_REG_BRCR_PCBB            0x0040 // post execute channel B
+#define CYGARC_REG_BRCR_SEQ             0x0008 // sequence condition select
+
+#if (CYGARC_SH_MOD_UBC == 1)
+#define CYGARC_REG_BAMRA_BASMA          0x04   // BASRA masked
+#define CYGARC_REG_BAMRA_BARA_UNMASKED  0x00   // BARA not masked
+#define CYGARC_REG_BAMRA_BARA_10BIT     0x01   // Lowest 10 bit masked
+#define CYGARC_REG_BAMRA_BARA_12BIT     0x02   // Lowest 12 bit masked
+#define CYGARC_REG_BAMRA_BARA_MASKED    0x03   // All bits masked
+#else
+// mask is fully configurable in other versions of the UBC
+#endif
+
+#define CYGARC_REG_BBRA_DFETCH          0x0020 // Break on DFETCH
+#define CYGARC_REG_BBRA_IFETCH          0x0010 // Break on IFETCH
+#define CYGARC_REG_BBRA_WRITE           0x0008 // Break on WRITE
+#define CYGARC_REG_BBRA_READ            0x0004 // Break on READ
+#define CYGARC_REG_BBRA_SIZE_LONG       0x0003 // Break on long access
+#define CYGARC_REG_BBRA_SIZE_WORD       0x0002 // Break on word access
+#define CYGARC_REG_BBRA_SIZE_BYTE       0x0001 // Break on byte access
+#define CYGARC_REG_BBRA_SIZE_ANY        0x0000 // Break on any size
+
+
+//----------------------------------------------------------------------------
+// Other types
+#if (CYGARC_SH_MOD_UBC >= 3)
+#define CYGARC_REG_BETR                 0xffffff9c // 16 bit
+#define CYGARC_REG_BRSR                 0xffffffac // 32 bit
+#define CYGARC_REG_BRDR                 0xffffffbc // 32 bit
+
+#define CYGARC_REG_BBRA_DMA             0x0080 // Break on DMAC cycle
+#define CYGARC_REG_BBRA_CPU             0x0040 // Break on CPU cycle
+#endif
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/sh3_sci.h
@@ -0,0 +1,81 @@
+//=============================================================================
+//
+//      sh3_sci.h
+//
+//      Simple driver for the SH Serial Communication Interface (SCI)
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-05-17
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGNUM_HAL_SH_SH3_SCI_PORTS
+
+//--------------------------------------------------------------------------
+// SCI register offsets
+#if (CYGARC_SH_MOD_SCI >= 2)
+# define _REG_SCSPTR             -0x4 // serial port register
+#endif
+#define _REG_SCSMR                0x0 // serial mode register
+#define _REG_SCBRR                0x2 // bit rate register
+#define _REG_SCSCR                0x4 // serial control register
+#define _REG_SCTDR                0x6 // transmit data register
+#define _REG_SCSSR                0x8 // serial status register
+#define _REG_SCRDR                0xa // receive data register
+
+//--------------------------------------------------------------------------
+
+typedef struct {
+    cyg_uint8* base;
+    cyg_int32 msec_timeout;
+    int isr_vector;
+} channel_data_t;
+
+//--------------------------------------------------------------------------
+
+#if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+// This one should only be used by old-stub compatibility code!
+externC void cyg_hal_plf_sci_init_channel(const channel_data_t* chan);
+#endif
+
+externC cyg_uint8 cyg_hal_plf_sci_getc(void* __ch_data);
+externC void cyg_hal_plf_sci_putc(void* __ch_data, cyg_uint8 c);
+externC void cyg_hal_plf_sci_init(int sci_index, int comm_index, 
+                                  int rcv_vect, cyg_uint8* base);
+
+
+#endif // CYGNUM_HAL_SH_SH3_SCI_PORTS
+//-----------------------------------------------------------------------------
+// end of sh3_sci.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/sh3_scif.h
@@ -0,0 +1,88 @@
+//=============================================================================
+//
+//      sh3_scif.h
+//
+//      Simple driver for the SH3 Serial Communication Interface with FIFO
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-03-30
+// Description: Simple driver for the SH Serial Communication Interface
+//              The driver can be used for either the SCIF or the IRDA
+//              modules (the latter can act as the former).
+//              Clients of this file can configure the behavior with:
+//              CYGNUM_SCIF_PORTS: number of SCI ports
+//
+// Note:        It should be possible to configure a channel to IRDA mode.
+//              Worry about that when some board needs it.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGNUM_HAL_SH_SH3_SCIF_PORTS
+
+//--------------------------------------------------------------------------
+// SCIF register offsets
+#define _REG_SCSMR  0x00
+#define _REG_SCBRR  0x02
+#define _REG_SCSCR  0x04
+#define _REG_SCFTDR 0x06
+#define _REG_SCSSR  0x08
+#define _REG_SCFRDR 0x0a
+#define _REG_SCFCR  0x0c
+#define _REG_SCFDR  0x0e
+
+//--------------------------------------------------------------------------
+
+typedef struct {
+    cyg_uint8* base;
+    cyg_int32 msec_timeout;
+    int isr_vector;
+} channel_data_t;
+
+//--------------------------------------------------------------------------
+
+#if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+// This one should only be used by old-stub compatibility code!
+externC void cyg_hal_plf_scif_init_channel(const channel_data_t* chan);
+#endif
+
+externC cyg_uint8 cyg_hal_plf_scif_getc(void* __ch_data);
+externC void cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c);
+void cyg_hal_plf_scif_init(int scif_index, int comm_index, 
+                           int rcv_vect, cyg_uint8* base);
+
+
+#endif // CYGNUM_HAL_SH_SH3_SCIF_PORTS
+//-----------------------------------------------------------------------------
+// end of sh3_scif.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/var_cache.h
@@ -0,0 +1,295 @@
+#ifndef CYGONCE_VAR_CACHE_H
+#define CYGONCE_VAR_CACHE_H
+
+//=============================================================================
+//
+//      var_cache.h
+//
+//      HAL variant cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-04-23
+// Purpose:     Cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations.
+// Usage:
+//              #include <cyg/hal/hal_cache.h>
+//              ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/system.h>
+#include <pkgconf/hal.h>
+#include <cyg/infra/cyg_type.h>
+#include <cyg/hal/hal_io.h>             // HAL_READ/WRITE macros
+
+#include CYGBLD_HAL_CPU_MODULES_H       // cache module specs
+
+#include <cyg/hal/sh_regs.h>            // CYGARC_REG_ definitions
+
+//-----------------------------------------------------------------------------
+// Cache dimensions - one unified cache
+
+#define HAL_CACHE_UNIFIED
+
+#define HAL_UCACHE_SIZE                 CYGARC_SH_MOD_CAC_SIZE
+#define HAL_UCACHE_LINE_SIZE            CYGARC_SH_MOD_CAC_LINE_SIZE
+#define HAL_UCACHE_WAYS                 CYGARC_SH_MOD_CAC_WAYS
+
+// Cache addressing information
+#define CYGARC_REG_CACHE_ADDRESS_BASE   CYGARC_SH_MOD_CAC_ADDRESS_BASE
+#define CYGARC_REG_CACHE_ADDRESS_TOP    CYGARC_SH_MOD_CAC_ADDRESS_TOP
+#define CYGARC_REG_CACHE_ADDRESS_STEP   CYGARC_SH_MOD_CAC_ADDRESS_STEP
+
+// Writing this to a cache address entry forces a flush of the line if
+// it is dirty.
+#define CYGARC_REG_CACHE_ADDRESS_FLUSH  CYGARC_SH_MOD_CAC_ADDRESS_FLUSH
+
+#define HAL_UCACHE_SETS (HAL_UCACHE_SIZE/(HAL_UCACHE_LINE_SIZE*HAL_UCACHE_WAYS))
+
+//-----------------------------------------------------------------------------
+// Global control of cache
+
+// This is all handled in assembly (see variant.S) due to a requirement about
+// not fiddling the cache from cachable memory.
+
+externC void cyg_hal_cache_enable(void);
+externC void cyg_hal_cache_disable(void);
+externC void cyg_hal_cache_invalidate_all(void);
+externC void cyg_hal_cache_sync(void);
+externC void cyg_hal_cache_sync_region(cyg_haladdress base, 
+                                       cyg_haladdrword len);
+externC void cyg_hal_cache_write_mode(int mode);
+
+// Enable the cache
+#define HAL_UCACHE_ENABLE() cyg_hal_cache_enable()
+
+// Disable the cache
+#define HAL_UCACHE_DISABLE() cyg_hal_cache_disable()
+
+// Invalidate the entire cache
+#define HAL_UCACHE_INVALIDATE_ALL() cyg_hal_cache_invalidate_all()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_UCACHE_SYNC() cyg_hal_cache_sync()
+
+// Query the state of the cache (does not affect the caching)
+#define HAL_UCACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    HAL_READ_UINT32(CYGARC_REG_CCR, (_state_)); \
+    (_state_) &= ~CYGARC_REG_CCR_CE;            \
+    CYG_MACRO_END
+
+// Set the cache refill burst size
+//#define HAL_UCACHE_BURST_SIZE(_size_)
+
+// Set the cache write mode
+#define HAL_UCACHE_WRITE_MODE( _mode_ )         \
+    CYG_MACRO_START                             \
+    cyg_uint32 _m_;                             \
+    if (HAL_UCACHE_WRITETHRU_MODE == _mode_)    \
+      _m_ = CYGARC_REG_CCR_WT;                  \
+    else                                        \
+      _m_ = CYGARC_REG_CCR_CB;                  \
+    cyg_hal_cache_write_mode(_m_);              \
+    CYG_MACRO_END
+
+#define HAL_UCACHE_WRITETHRU_MODE       0
+#define HAL_UCACHE_WRITEBACK_MODE       1
+
+// This macro allows the client to specify separate modes for the two
+// regions.
+#define HAL_UCACHE_WRITE_MODE_SH( _mode_ ) cyg_hal_cache_write_mode(_mode_)
+
+// Load the contents of the given address range into the cache
+// and then lock the cache so that it stays there.
+//#define HAL_UCACHE_LOCK(_base_, _size_)
+        
+// Undo a previous lock operation
+//#define HAL_UCACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+//#define HAL_UCACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Cache line control
+
+// Allocate cache lines for the given address range without reading its
+// contents from memory.
+//#define HAL_UCACHE_ALLOCATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+#define HAL_UCACHE_FLUSH( _base_ , _size_ ) \
+ cyg_hal_cache_sync_region((cyg_haladdress) _base_, (cyg_haladdrword)_size_)
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_UCACHE_INVALIDATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory for the given address range.
+//#define HAL_UCACHE_STORE( _base_ , _size_ )
+
+
+// Preread the given range into the cache with the intention of reading
+// from it later.
+//#define HAL_UCACHE_READ_HINT( _base_ , _size_ )
+
+// Preread the given range into the cache with the intention of writing
+// to it later.
+//#define HAL_UCACHE_WRITE_HINT( _base_ , _size_ )
+
+// Allocate and zero the cache lines associated with the given range.
+//#define HAL_UCACHE_ZERO( _base_ , _size_ )
+
+
+//-----------------------------------------------------------------------------
+// Data and instruction cache macros map onto the both-cache macros
+
+//-----------------------------------------------------------------------------
+// Global control of data cache
+
+#define HAL_DCACHE_SIZE                 HAL_UCACHE_SIZE
+#define HAL_DCACHE_LINE_SIZE            HAL_UCACHE_LINE_SIZE
+#define HAL_DCACHE_WAYS                 HAL_UCACHE_WAYS
+#define HAL_DCACHE_SETS                 HAL_UCACHE_SETS
+
+// Enable the data cache
+#define HAL_DCACHE_ENABLE()             HAL_UCACHE_ENABLE()
+
+// Disable the data cache
+#define HAL_DCACHE_DISABLE()            HAL_UCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL()     HAL_UCACHE_INVALIDATE_ALL()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC()               HAL_UCACHE_SYNC()
+
+// Query the state of the data cache
+#define HAL_DCACHE_IS_ENABLED(_state_)  HAL_UCACHE_IS_ENABLED(_state_)
+
+// Set the data cache refill burst size
+//#define HAL_DCACHE_BURST_SIZE(_size_)
+
+// Set the data cache write mode
+//#define HAL_DCACHE_WRITE_MODE( _mode_ )
+
+//#define HAL_DCACHE_WRITETHRU_MODE       0
+//#define HAL_DCACHE_WRITEBACK_MODE       1
+
+// Load the contents of the given address range into the data cache
+// and then lock the cache so that it stays there.
+//#define HAL_DCACHE_LOCK(_base_, _size_)
+
+// Undo a previous lock operation
+//#define HAL_DCACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+//#define HAL_DCACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Data cache line control
+
+// Allocate cache lines for the given address range without reading its
+// contents from memory.
+//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+#define HAL_DCACHE_FLUSH( _base_ , _size_ ) HAL_UCACHE_FLUSH( _base_, _size_ )
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_DCACHE_INVALIDATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory for the given address range.
+//#define HAL_DCACHE_STORE( _base_ , _size_ )
+
+// Preread the given range into the cache with the intention of reading
+// from it later.
+//#define HAL_DCACHE_READ_HINT( _base_ , _size_ )
+
+// Preread the given range into the cache with the intention of writing
+// to it later.
+//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ )
+
+// Allocate and zero the cache lines associated with the given range.
+//#define HAL_DCACHE_ZERO( _base_ , _size_ )
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+#define HAL_ICACHE_SIZE                 HAL_UCACHE_SIZE
+#define HAL_ICACHE_LINE_SIZE            HAL_UCACHE_LINE_SIZE
+#define HAL_ICACHE_WAYS                 HAL_UCACHE_WAYS
+#define HAL_ICACHE_SETS                 HAL_UCACHE_SETS
+
+// Enable the instruction cache
+#define HAL_ICACHE_ENABLE()             HAL_UCACHE_ENABLE()
+
+// Disable the instruction cache
+#define HAL_ICACHE_DISABLE()            HAL_UCACHE_DISABLE()
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL()     HAL_UCACHE_INVALIDATE_ALL()
+
+
+// Synchronize the contents of the cache with memory.
+#define HAL_ICACHE_SYNC()               HAL_UCACHE_SYNC()
+
+// Query the state of the instruction cache
+#define HAL_ICACHE_IS_ENABLED(_state_)  HAL_UCACHE_IS_ENABLED(_state_)
+
+// Set the instruction cache refill burst size
+//#define HAL_ICACHE_BURST_SIZE(_size_)
+
+// Load the contents of the given address range into the instruction cache
+// and then lock the cache so that it stays there.
+
+//#define HAL_ICACHE_LOCK(_base_, _size_)
+
+// Undo a previous lock operation
+//#define HAL_ICACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+//#define HAL_ICACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Instruction cache line control
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ )
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_CACHE_H
+// End of var_cache.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/var_intr.h
@@ -0,0 +1,113 @@
+#ifndef CYGONCE_VAR_INTR_H
+#define CYGONCE_VAR_INTR_H
+
+//==========================================================================
+//
+//      var_intr.h
+//
+//      HAL variant interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,
+// Date:         1999-04-24
+// Purpose:      Define Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock.
+//              
+// Usage:
+//               #include <cyg/hal/hal_intr.h>
+//               ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_CPU_MODULES_H       // INTC module selection
+
+//----------------------------------------------------------------------------
+// Additional vectors provided by INTC V2
+
+#if (CYGARC_SH_MOD_INTC >= 2)
+#define CYGNUM_HAL_INTERRUPT_RESERVED_5C0    32
+#define CYGNUM_HAL_INTERRUPT_HUDI_HUDI       33
+#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ0        34
+#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ1        35
+#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ2        36
+#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ3        37
+#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ4        38
+#define CYGNUM_HAL_INTERRUPT_IRQ_IRQ5        39
+#define CYGNUM_HAL_INTERRUPT_RESERVED_6C0    40
+#define CYGNUM_HAL_INTERRUPT_RESERVED_6E0    41
+#define CYGNUM_HAL_INTERRUPT_PINT_PINT07     42
+#define CYGNUM_HAL_INTERRUPT_PINT_PINT8F     43
+#define CYGNUM_HAL_INTERRUPT_RESERVED_740    44
+#define CYGNUM_HAL_INTERRUPT_RESERVED_760    45
+#define CYGNUM_HAL_INTERRUPT_RESERVED_780    46
+#define CYGNUM_HAL_INTERRUPT_RESERVED_7A0    47
+#define CYGNUM_HAL_INTERRUPT_RESERVED_7C0    48
+#define CYGNUM_HAL_INTERRUPT_RESERVED_7E0    59
+#define CYGNUM_HAL_INTERRUPT_DMAC_DEI0       50
+#define CYGNUM_HAL_INTERRUPT_DMAC_DEI1       51
+#define CYGNUM_HAL_INTERRUPT_DMAC_DEI2       52
+#define CYGNUM_HAL_INTERRUPT_DMAC_DEI3       53
+#define CYGNUM_HAL_INTERRUPT_IRDA_ERI1       54
+#define CYGNUM_HAL_INTERRUPT_IRDA_RXI1       55
+#define CYGNUM_HAL_INTERRUPT_IRDA_BRI1       56
+#define CYGNUM_HAL_INTERRUPT_IRDA_TXI1       57
+#define CYGNUM_HAL_INTERRUPT_SCIF_ERI2       58
+#define CYGNUM_HAL_INTERRUPT_SCIF_RXI2       59
+#define CYGNUM_HAL_INTERRUPT_SCIF_BRI2       60
+#define CYGNUM_HAL_INTERRUPT_SCIF_TXI2       61
+#define CYGNUM_HAL_INTERRUPT_ADC_ADI         62
+
+#undef  CYGNUM_HAL_ISR_MAX
+#define CYGNUM_HAL_ISR_MAX                   CYGNUM_HAL_INTERRUPT_ADC_ADI
+
+#endif // CYGARC_SH_MOD_INTC >= 2
+
+//----------------------------------------------------------------------------
+// Additional vectors provided by INTC V3
+
+#if (CYGARC_SH_MOD_INTC >= 3)
+#define CYGNUM_HAL_INTERRUPT_LCDC_LCDI       63
+#define CYGNUM_HAL_INTERRUPT_PCC_PCC0        64
+#define CYGNUM_HAL_INTERRUPT_PCC_PCC1        65
+
+#undef  CYGNUM_HAL_ISR_MAX
+#define CYGNUM_HAL_ISR_MAX                   CYGNUM_HAL_INTERRUPT_PCC_PCC1
+
+#endif // CYGARC_SH_MOD_INTC >= 3
+
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_INTR_H
+// End of var_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/var_regs.h
@@ -0,0 +1,100 @@
+#ifndef CYGONCE_VAR_SH_REGS_H
+#define CYGONCE_VAR_SH_REGS_H
+//=============================================================================
+//
+//      sh_regs.h
+//
+//      SH CPU definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-04-24
+// Purpose:     Define CPU memory mapped registers etc.
+// Usage:       #include <cyg/hal/sh_regs.h>
+// Notes:
+//   This file describes registers for on-core modules found in all
+//   the SH3 CPUs supported by the HAL. For each CPU is defined a
+//   module specification file (mod_<CPU model number>.h) which lists
+//   modules (and their version if applicable) included in that
+//   particular CPU model.  Note that the versioning is ad hoc;
+//   it doesn't reflect Hitachi internal versioning in any way.
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Find out which modules are supported by the chosen CPU
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_CPU_MODULES_H
+
+//==========================================================================
+//                             CPU Definitions
+//==========================================================================
+
+//--------------------------------------------------------------------------
+// Status register
+#define CYGARC_REG_SR_MD                0x40000000
+#define CYGARC_REG_SR_RB                0x20000000
+#define CYGARC_REG_SR_BL                0x10000000
+#define CYGARC_REG_SR_M                 0x00000200
+#define CYGARC_REG_SR_Q                 0x00000100
+#define CYGARC_REG_SR_IMASK             0x000000f0
+#define CYGARC_REG_SR_I3                0x00000080
+#define CYGARC_REG_SR_I2                0x00000040
+#define CYGARC_REG_SR_I1                0x00000020
+#define CYGARC_REG_SR_I0                0x00000010
+#define CYGARC_REG_SR_S                 0x00000002
+#define CYGARC_REG_SR_T                 0x00000001
+
+
+//==========================================================================
+//                             Module Definitions
+//==========================================================================
+
+#include <cyg/hal/mod_regs_bsc.h>
+#include <cyg/hal/mod_regs_cac.h>
+#include <cyg/hal/mod_regs_cpg.h>
+#include <cyg/hal/mod_regs_intc.h>
+#include <cyg/hal/mod_regs_mmu.h>
+#include <cyg/hal/mod_regs_rtc.h>
+#include <cyg/hal/mod_regs_ser.h>
+#include <cyg/hal/mod_regs_tmu.h>
+#include <cyg/hal/mod_regs_ubc.h>
+
+#ifdef CYGARC_SH_MOD_DMAC
+#include <cyg/hal/mod_regs_dma.h>
+#endif
+#ifdef CYGARC_SH_MOD_PFC
+#include <cyg/hal/mod_regs_pfc.h>
+#endif
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_SH_REGS_H
+// End of var_regs.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/include/variant.inc
@@ -0,0 +1,188 @@
+#ifndef CYGONCE_HAL_VARIANT_INC
+#define CYGONCE_HAL_VARIANT_INC
+##=============================================================================
+##
+##      variant.inc
+##
+##      SH3 variant assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):   jskov
+## Contributors:jskov
+## Date:        2000-10-30
+## Purpose:     SH3 variant definitions and init code
+## Description: This file contains various definitions and macros that are
+##              useful for writing assembly code for the SH3 CPU family.
+## Usage:
+##              #include <cyg/hal/variant.inc>
+##              ...
+##              
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/sh_regs.h>
+        
+#===========================================================================
+# SR initialization value
+# zero all bits except:
+# MD = Processor operation mode field (privileged mode)
+# I0-3 = Mask out all interrupts but NMI.
+#
+# When saving or restoring the state of an exception or interrupt, the bit
+# CYGARC_REG_SR_RB is also set, switching the register bank. When this bit
+# is set, interrupts must be disabled.
+#
+# Note: We could also use the BL bit to prevent interrupts, but that would
+#       also prevent the use of breakpoints.
+
+#define CYG_SR (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK)
+#define CYG_SR_BANK1 (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK|CYGARC_REG_SR_RB)
+
+##-----------------------------------------------------------------------------
+## Hardware init macros
+#ifndef CYGPKG_HAL_SH_POST_RESET_INIT
+	.macro  hal_post_reset_init
+        # Initialize CPU
+        mov.l   $nCYG_SR,r1             ! Put CPU in a well-known state
+        ldc     r1,sr
+        mov     #0,r0
+        mov     #CYGARC_REG_CCR,r1      ! Disable cache
+        mov.l   r0,@r1
+        mov     #CYGARC_REG_MMUCR,r1    ! Disable MMU
+        mov.l   r0,@r1
+        mov     #CYGARC_REG_BBRA,r1     ! Disable UBC Channel A
+        mov.w   r0,@r1
+        mov     #CYGARC_REG_BBRB,r1     ! Disable UBC Channel B
+        mov.w   r0,@r1
+        mov     #CYGARC_REG_BRCR,r1     ! Reset UBC common register
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_TSTR,r1     ! Disable timers
+        mov.b   r0,@r1
+        mov.l   $CYGARC_REG_IPRA,r1     ! Disable interrupt request sources
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_IPRB,r1
+        mov.w   r0,@r1
+#if (CYGARC_SH_MOD_INTC >= 2)
+        mov.l   $CYGARC_REG_IPRC,r1
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_IPRD,r1
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_IPRE,r1
+        mov.w   r0,@r1
+#if (CYGARC_SH_MOD_INTC >= 3)
+        mov.l   $CYGARC_REG_IPRF,r1
+        mov.w   r0,@r1
+#endif
+	mov.w   $nCYG_ICR1_INIT,r0
+        mov.l   $CYGARC_REG_ICR1,r1     ! Set interrupt controller to IRQ mode
+        mov.w   r0,@r1
+#endif
+	mov.w	$nCYG_WTCSR,r0          ! Clear watchdog
+	mov	#CYGARC_REG_WTCSR,r1
+	mov.w	r0,@r1
+
+        # Initialize VBR if necessary
+#if     !defined(CYG_HAL_STARTUP_RAM) ||                \
+        (       defined(CYG_HAL_STARTUP_RAM) &&         \
+                !defined(CYGSEM_HAL_USE_ROM_MONITOR))
+        mov.l   $__reset,r1             ! Set VBR
+        ldc     r1,vbr
+#endif
+	bra	1f
+	 nop
+	
+$nCYG_WTCSR:
+	.word	0xa500		! clear all CSR bits
+
+	.align	2
+$nCYG_SR:
+        .long   CYG_SR
+$CYGARC_REG_TSTR:
+        .long   CYGARC_REG_TSTR
+$CYGARC_REG_IPRA:
+        .long   CYGARC_REG_IPRA
+$CYGARC_REG_IPRB:
+        .long   CYGARC_REG_IPRB
+#if (CYGARC_SH_MOD_INTC >= 2)
+$CYGARC_REG_IPRC:
+        .long   CYGARC_REG_IPRC
+$CYGARC_REG_IPRD:
+        .long   CYGARC_REG_IPRD
+$CYGARC_REG_IPRE:
+        .long   CYGARC_REG_IPRE
+$CYGARC_REG_ICR1:
+        .long   CYGARC_REG_ICR1
+$nCYG_ICR1_INIT:
+	.word	CYGARC_REG_ICR1_INIT
+	.align	2
+#endif
+#if (CYGARC_SH_MOD_INTC >= 3)
+$CYGARC_REG_IPRF:
+        .long   CYGARC_REG_IPRF
+#endif
+$__reset:
+        .long   __reset
+
+1:	
+	.endm
+#define CYGPKG_HAL_SH_POST_RESET_INIT
+#endif
+
+##-----------------------------------------------------------------------------
+## Interrupt decode macros
+	.macro	hal_intc_decode tmp,inum
+#if (CYGARC_SH_MOD_INTC >= 2)
+        mov.l   $nCYGARC_REG_INTEVT2,\tmp
+#else
+        mov     #CYGARC_REG_INTEVT,\tmp
+#endif
+        mov.l   @\tmp,\inum
+        mov     #-5,\tmp                ! divide cause by 0x20
+        shld    \tmp,\inum
+        add     #-14,\inum              ! adjust so NMI becomes 0
+
+	.endm
+	
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+	.macro	hal_intc_translate inum,vnum
+	mov     #0,\vnum		! Just vector zero is supported
+	.endm
+#else			
+	.macro	hal_intc_translate inum,vnum
+	mov	\inum,\vnum		! Vector == interrupt number
+        shll2   \vnum                   ! get from vector number to ISR index
+	.endm
+#endif
+
+#------------------------------------------------------------------------------
+#endif // CYGONCE_HAL_VARIANT_INC
+# end of variant.inc
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/src/sh3_sci.c
@@ -0,0 +1,307 @@
+//=============================================================================
+//
+//      sh3_sci.c
+//
+//      Simple driver for the SH Serial Communication Interface (SCI)
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        1999-05-17
+// Description: Simple driver for the SH Serial Communication Interface
+//              Clients of this file can configure the behavior with:
+//              CYGNUM_SCI_PORTS:  number of SCI ports
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGNUM_HAL_SH_SH3_SCI_PORTS
+
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
+#include <cyg/hal/hal_misc.h>           // Helper functions
+#include <cyg/hal/hal_intr.h>           // HAL_ENABLE/MASK/UNMASK_INTERRUPTS
+#include <cyg/hal/hal_arch.h>           // SAVE/RESTORE GP
+#include <cyg/hal/hal_if.h>             // Calling-if API
+#include <cyg/hal/sh_regs.h>            // serial register definitions
+
+#include <cyg/hal/sh3_sci.h>            // our header
+
+//--------------------------------------------------------------------------
+
+#ifndef CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE
+# define CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE 38400
+#endif
+
+void
+cyg_hal_plf_sci_init_channel(const channel_data_t* chan)
+{
+    cyg_uint8 tmp;
+    cyg_uint8* base = chan->base;
+
+    // Disable Tx/Rx interrupts, but enable Tx/Rx
+    HAL_WRITE_UINT8(base+_REG_SCSCR,
+                    CYGARC_REG_SCSCR_TE|CYGARC_REG_SCSCR_RE);
+
+    // 8-1-no parity.
+    HAL_WRITE_UINT8(base+_REG_SCSMR, 0);
+
+    // Set speed to CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE
+    HAL_READ_UINT8(base+_REG_SCSMR, tmp);
+    tmp &= ~CYGARC_REG_SCSMR_CKSx_MASK;
+    tmp |= CYGARC_SCBRR_CKSx(CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE);
+    HAL_WRITE_UINT8(base+_REG_SCSMR, tmp);
+    HAL_WRITE_UINT8(base+_REG_SCBRR, CYGARC_SCBRR_N(CYGNUM_HAL_SH_SH3_SCI_DEFAULT_BAUD_RATE));
+}
+
+static cyg_bool
+cyg_hal_plf_sci_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint8 sr;
+
+    HAL_READ_UINT8(base+_REG_SCSSR, sr);
+    if ((sr & CYGARC_REG_SCSSR_RDRF) == 0)
+        return false;
+
+    HAL_READ_UINT8(base+_REG_SCRDR, *ch);
+
+    // Clear buffer full flag.
+    HAL_WRITE_UINT8(base+_REG_SCSSR, sr & ~CYGARC_REG_SCSSR_RDRF);
+
+    return true;
+}
+
+cyg_uint8
+cyg_hal_plf_sci_getc(void* __ch_data)
+{
+    cyg_uint8 ch;
+    CYGARC_HAL_SAVE_GP();
+
+    while(!cyg_hal_plf_sci_getc_nonblock(__ch_data, &ch));
+
+    CYGARC_HAL_RESTORE_GP();
+    return ch;
+}
+
+void
+cyg_hal_plf_sci_putc(void* __ch_data, cyg_uint8 c)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint8 sr;
+    CYGARC_HAL_SAVE_GP();
+
+    do {
+        HAL_READ_UINT8(base+_REG_SCSSR, sr);
+    } while ((sr & CYGARC_REG_SCSSR_TDRE) == 0);
+
+    HAL_WRITE_UINT8(base+_REG_SCTDR, c);
+
+    // Clear empty flag.
+    HAL_WRITE_UINT8(base+_REG_SCSSR, sr & ~CYGARC_REG_SCSSR_TDRE);
+
+    // Hang around until the character has been safely sent.
+    do {
+        HAL_READ_UINT8(base+_REG_SCSSR, sr);
+    } while ((sr & CYGARC_REG_SCSSR_TDRE) == 0);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
+    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
+
+static channel_data_t channels[CYGNUM_HAL_SH_SH3_SCI_PORTS];
+
+static void
+cyg_hal_plf_sci_write(void* __ch_data, const cyg_uint8* __buf, 
+                         cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        cyg_hal_plf_sci_putc(__ch_data, *__buf++);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+static void
+cyg_hal_plf_sci_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        *__buf++ = cyg_hal_plf_sci_getc(__ch_data);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+cyg_bool
+cyg_hal_plf_sci_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    int delay_count;
+    cyg_bool res;
+    CYGARC_HAL_SAVE_GP();
+
+    delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
+
+    for(;;) {
+        res = cyg_hal_plf_sci_getc_nonblock(__ch_data, ch);
+        if (res || 0 == delay_count--)
+            break;
+        
+        CYGACC_CALL_IF_DELAY_US(100);
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+static int
+cyg_hal_plf_sci_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+    static int irq_state = 0;
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    cyg_uint8 scr;
+    int ret = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    switch (__func) {
+    case __COMMCTL_IRQ_ENABLE:
+        irq_state = 1;
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
+        scr |= CYGARC_REG_SCSCR_RIE;
+        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
+        break;
+    case __COMMCTL_IRQ_DISABLE:
+        ret = irq_state;
+        irq_state = 0;
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
+        scr &= ~CYGARC_REG_SCSCR_RIE;
+        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
+        break;
+    case __COMMCTL_DBG_ISR_VECTOR:
+        ret = chan->isr_vector;
+        break;
+    case __COMMCTL_SET_TIMEOUT:
+    {
+        va_list ap;
+
+        va_start(ap, __func);
+
+        ret = chan->msec_timeout;
+        chan->msec_timeout = va_arg(ap, cyg_uint32);
+
+        va_end(ap);
+    }        
+    default:
+        break;
+    }
+    CYGARC_HAL_RESTORE_GP();
+    return ret;
+}
+
+static int
+cyg_hal_plf_sci_isr(void *__ch_data, int* __ctrlc, 
+                    CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+    cyg_uint8 c, sr;
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    int res = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    *__ctrlc = 0;
+    HAL_READ_UINT8(base+_REG_SCSSR, sr);
+    if (sr & CYGARC_REG_SCSSR_RDRF) {
+        HAL_READ_UINT8(base+_REG_SCRDR, c);
+
+        // Clear buffer full flag.
+        HAL_WRITE_UINT8(base+_REG_SCSSR, 
+                        CYGARC_REG_SCSSR_CLEARMASK & ~CYGARC_REG_SCSSR_RDRF);
+
+        if( cyg_hal_is_break( &c , 1 ) )
+            *__ctrlc = 1;
+
+        res = CYG_ISR_HANDLED;
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+void
+cyg_hal_plf_sci_init(int sci_index, int comm_index, 
+                     int rcv_vect, cyg_uint8* base)
+{
+    channel_data_t* chan = &channels[sci_index];
+    hal_virtual_comm_table_t* comm;
+    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+    // Initialize channel table
+    chan->base = base;
+    chan->isr_vector = rcv_vect;
+    chan->msec_timeout = 1000;
+
+    // Disable interrupts.
+    HAL_INTERRUPT_MASK(chan->isr_vector);
+
+    // Init channel
+    
+    cyg_hal_plf_sci_init_channel(chan);
+
+    // Setup procs in the vector table
+
+    // Initialize channel procs
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(comm_index);
+    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+    CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_sci_write);
+    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_sci_read);
+    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_sci_putc);
+    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_sci_getc);
+    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_sci_control);
+    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_sci_isr);
+    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_sci_getc_timeout);
+
+    // Restore original console
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+#endif // CYGNUM_HAL_SH_SH3_SCI_PORTS
+
+//-----------------------------------------------------------------------------
+// end of sh_sci.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/src/sh3_scif.c
@@ -0,0 +1,344 @@
+//=============================================================================
+//
+//      sh3_scif.c
+//
+//      Simple driver for the SH3 Serial Communication Interface with FIFO
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-03-30
+// Description: Simple driver for the SH Serial Communication Interface
+//              The driver can be used for either the SCIF or the IRDA
+//              modules (the latter can act as the former).
+//              Clients of this file can configure the behavior with:
+//              CYGNUM_SCIF_PORTS: number of SCI ports
+//
+// Note:        It should be possible to configure a channel to IRDA mode.
+//              Worry about that when some board needs it.
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGNUM_HAL_SH_SH3_SCIF_PORTS
+
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
+#include <cyg/hal/hal_misc.h>           // Helper functions
+#include <cyg/hal/hal_intr.h>           // HAL_ENABLE/MASK/UNMASK_INTERRUPTS
+#include <cyg/hal/hal_arch.h>           // SAVE/RESTORE GP
+#include <cyg/hal/hal_if.h>             // Calling-if API
+#include <cyg/hal/sh_regs.h>            // serial register definitions
+#include <cyg/hal/sh_stub.h>            // target_register_t
+
+#include <cyg/hal/sh3_scif.h>           // our header
+
+//--------------------------------------------------------------------------
+
+#ifndef CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE
+# define CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE 38400
+#endif
+
+void
+cyg_hal_plf_scif_init_channel(const channel_data_t* chan)
+{
+    cyg_uint8* base = chan->base;
+    cyg_uint8 tmp;
+    cyg_uint16 sr;
+
+    // Disable everything.
+    HAL_WRITE_UINT8(base+_REG_SCSCR, 0);
+
+    // Reset FIFO.
+    HAL_WRITE_UINT8(base+_REG_SCFCR, 
+                    CYGARC_REG_SCFCR2_TFRST|CYGARC_REG_SCFCR2_RFRST);
+
+    // 8-1-no parity.
+    HAL_WRITE_UINT8(base+_REG_SCSMR, 0);
+
+    // Set speed to CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE
+    HAL_READ_UINT8(base+_REG_SCSMR, tmp);
+    tmp &= ~CYGARC_REG_SCSMR2_CKSx_MASK;
+    tmp |= CYGARC_SCBRR_CKSx(CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE);
+    HAL_WRITE_UINT8(base+_REG_SCSMR, tmp);
+    HAL_WRITE_UINT8(base+_REG_SCBRR, CYGARC_SCBRR_N(CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE));
+
+    // Let things settle: Here we should should wait the equivalent of
+    // one bit interval,
+    // i.e. 1/CYGNUM_HAL_SH_SH3_SCIF_DEFAULT_BAUD_RATE second, but
+    // until we have something like the Linux delay loop, it's hard to
+    // do reliably. So just move on and hope for the best (this is
+    // unlikely to cause problems since the CPU has just come out of
+    // reset anyway).
+
+    // Clear status register (read back first).
+    HAL_READ_UINT16(base+_REG_SCSSR, sr);
+    HAL_WRITE_UINT16(base+_REG_SCSSR, 0);
+
+    // Bring FIFO out of reset and set to trigger on every char in
+    // FIFO (or C-c input would not be processed).
+    HAL_WRITE_UINT8(base+_REG_SCFCR, 
+                    CYGARC_REG_SCFCR2_RTRG_1|CYGARC_REG_SCFCR2_TTRG_1);
+
+    // Leave Tx/Rx interrupts disabled, but enable Tx/Rx
+    HAL_WRITE_UINT8(base+_REG_SCSCR, 
+                    CYGARC_REG_SCSCR2_TE|CYGARC_REG_SCSCR2_RE);
+}
+
+//static 
+cyg_bool
+cyg_hal_plf_scif_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint16 fdr, sr;
+
+    HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    if (0 == (fdr & CYGARC_REG_SCFDR2_RCOUNT_MASK))
+        return false;
+
+    HAL_READ_UINT8(base+_REG_SCFRDR, *ch);
+
+    // Clear DR/RDF flags
+    HAL_READ_UINT16(base+_REG_SCSSR, sr);
+    HAL_WRITE_UINT16(base+_REG_SCSSR,
+                     CYGARC_REG_SCSSR2_CLEARMASK & ~(CYGARC_REG_SCSSR2_RDF | CYGARC_REG_SCSSR2_DR));
+
+    return true;
+}
+
+cyg_uint8
+cyg_hal_plf_scif_getc(void* __ch_data)
+{
+    cyg_uint8 ch;
+    CYGARC_HAL_SAVE_GP();
+
+    while(!cyg_hal_plf_scif_getc_nonblock(__ch_data, &ch));
+
+    CYGARC_HAL_RESTORE_GP();
+    return ch;
+}
+
+void
+cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint16 fdr, sr;
+    CYGARC_HAL_SAVE_GP();
+
+    do {
+        HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    } while (((fdr & CYGARC_REG_SCFDR2_TCOUNT_MASK) >> CYGARC_REG_SCFDR2_TCOUNT_shift) == 16);
+
+    HAL_WRITE_UINT8(base+_REG_SCFTDR, c);
+
+    // Clear FIFO-empty/transmit end flags (read back SR first)
+    HAL_READ_UINT16(base+_REG_SCSSR, sr);
+    HAL_WRITE_UINT16(base+_REG_SCSSR, CYGARC_REG_SCSSR2_CLEARMASK   
+                     & ~(CYGARC_REG_SCSSR2_TDFE | CYGARC_REG_SCSSR2_TEND ));
+
+    // Hang around until the character has been safely sent.
+    do {
+        HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    } while ((fdr & CYGARC_REG_SCFDR2_TCOUNT_MASK) != 0);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
+    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
+
+static channel_data_t channels[CYGNUM_HAL_SH_SH3_SCIF_PORTS];
+
+static void
+cyg_hal_plf_scif_write(void* __ch_data, const cyg_uint8* __buf, 
+                         cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        cyg_hal_plf_scif_putc(__ch_data, *__buf++);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+static void
+cyg_hal_plf_scif_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        *__buf++ = cyg_hal_plf_scif_getc(__ch_data);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+cyg_bool
+cyg_hal_plf_scif_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    int delay_count;
+    cyg_bool res;
+    CYGARC_HAL_SAVE_GP();
+
+    delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
+
+    for(;;) {
+        res = cyg_hal_plf_scif_getc_nonblock(__ch_data, ch);
+        if (res || 0 == delay_count--)
+            break;
+        
+        CYGACC_CALL_IF_DELAY_US(100);
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+static int
+cyg_hal_plf_scif_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+    static int irq_state = 0;
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    cyg_uint8 scr;
+    int ret = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    switch (__func) {
+    case __COMMCTL_IRQ_ENABLE:
+        irq_state = 1;
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
+        scr |= CYGARC_REG_SCSCR2_RIE;
+        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
+        break;
+    case __COMMCTL_IRQ_DISABLE:
+        ret = irq_state;
+        irq_state = 0;
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        HAL_READ_UINT8(chan->base+_REG_SCSCR, scr);
+        scr &= ~CYGARC_REG_SCSCR2_RIE;
+        HAL_WRITE_UINT8(chan->base+_REG_SCSCR, scr);
+        break;
+    case __COMMCTL_DBG_ISR_VECTOR:
+        ret = chan->isr_vector;
+        break;
+    case __COMMCTL_SET_TIMEOUT:
+    {
+        va_list ap;
+
+        va_start(ap, __func);
+
+        ret = chan->msec_timeout;
+        chan->msec_timeout = va_arg(ap, cyg_uint32);
+
+        va_end(ap);
+    }        
+    default:
+        break;
+    }
+    CYGARC_HAL_RESTORE_GP();
+    return ret;
+}
+
+static int
+cyg_hal_plf_scif_isr(void *__ch_data, int* __ctrlc, 
+                     CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+    cyg_uint8 c;
+    cyg_uint16 fdr, sr;
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    int res = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    *__ctrlc = 0;
+    HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    if ((fdr & CYGARC_REG_SCFDR2_RCOUNT_MASK) != 0) {
+        HAL_READ_UINT8(base+_REG_SCFRDR, c);
+
+        // Clear buffer full flag (read back first).
+        HAL_READ_UINT16(base+_REG_SCSSR, sr);
+        HAL_WRITE_UINT16(base+_REG_SCSSR, 
+                         CYGARC_REG_SCSSR2_CLEARMASK & ~CYGARC_REG_SCSSR2_RDF);
+
+        if( cyg_hal_is_break( &c , 1 ) )
+            *__ctrlc = 1;
+
+        res = CYG_ISR_HANDLED;
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+void
+cyg_hal_plf_scif_init(int scif_index, int comm_index, 
+                      int rcv_vect, cyg_uint8* base)
+{
+    channel_data_t* chan = &channels[scif_index];
+    hal_virtual_comm_table_t* comm;
+    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+    // Initialize channel table
+    chan->base = base;
+    chan->isr_vector = rcv_vect;
+    chan->msec_timeout = 1000;
+
+    // Disable interrupts.
+    HAL_INTERRUPT_MASK(chan->isr_vector);
+
+    // Init channel
+    cyg_hal_plf_scif_init_channel(chan);
+
+    // Setup procs in the vector table
+
+    // Initialize channel procs
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(comm_index);
+    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+    CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_scif_write);
+    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_scif_read);
+    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_scif_putc);
+    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_scif_getc);
+    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_scif_control);
+    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_scif_isr);
+    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_scif_getc_timeout);
+
+    // Restore original console
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+#endif // CYGNUM_HAL_SH_SH3_SCIF_PORTS
+
+//-----------------------------------------------------------------------------
+// end of sh3_scif.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/src/var_misc.c
@@ -0,0 +1,439 @@
+//==========================================================================
+//
+//      var_misc.c
+//
+//      HAL miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov, jlarmour, nickg
+// Date:         1999-04-03
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+#include <cyg/infra/cyg_trac.h>         // tracing macros
+#include <cyg/infra/cyg_ass.h>          // assertion macros
+#include <cyg/infra/diag.h>             // diag_printf
+
+#include <cyg/hal/hal_arch.h>           // HAL header
+#include <cyg/hal/hal_cache.h>          // HAL cache
+#include <cyg/hal/hal_intr.h>           // HAL interrupts/exceptions
+
+//---------------------------------------------------------------------------
+// Initial cache enabling
+
+#ifdef CYGHWR_HAL_SH_CACHE_MODE_P0_WRITE_BACK
+# define CACHE_MODE_P0 0
+#else
+# define CACHE_MODE_P0 CYGARC_REG_CCR_WT
+#endif
+
+#ifdef CYGHWR_HAL_SH_CACHE_MODE_P1_WRITE_BACK
+# define CACHE_MODE_P1 CYGARC_REG_CCR_CB
+#else
+# define CACHE_MODE_P1 0
+#endif
+
+externC void
+cyg_var_enable_caches(void)
+{
+    // Initialize cache.
+    HAL_UCACHE_INVALIDATE_ALL();    
+
+    // Set cache modes
+    HAL_UCACHE_WRITE_MODE_SH(CACHE_MODE_P0|CACHE_MODE_P1);
+
+#ifdef CYGHWR_HAL_SH_CACHE_ENABLE
+    // Enable cache.
+    HAL_UCACHE_ENABLE();
+#endif
+}
+
+//---------------------------------------------------------------------------
+void
+hal_variant_init(void)
+{
+}
+
+//---------------------------------------------------------------------------
+// Interrupt function support
+
+#ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
+externC cyg_uint8 cyg_hal_ILVL_table[];
+#define HAL_UPDATE_ILVL_TABLE(_vector_, _level_)                         \
+    /* Update the ILVL table, so it is easy for the interrupt entry */   \
+    /* code to find out the level of a given interrupt source.      */   \
+    cyg_hal_ILVL_table[(_vector_)] = (_level_)
+#else
+#define HAL_UPDATE_ILVL_TABLE(_vector_, _level_)
+#endif
+
+void
+hal_interrupt_set_level(int vector, int level)
+{
+    cyg_uint16 iprX;                                                     
+                                                                         
+    CYG_ASSERT((0 <= (level) && 15 >= (level)), "Illegal level");    
+    CYG_ASSERT((CYGNUM_HAL_ISR_MIN <= (vector)                         
+                && CYGNUM_HAL_ISR_MAX >= (vector)), "Illegal vector"); 
+                                                                         
+    HAL_UPDATE_ILVL_TABLE(vector, level);                            
+                                                                         
+    switch( (vector) ) {                                               
+    case CYGNUM_HAL_INTERRUPT_NMI:                                       
+        /* fall through */                                               
+    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:         
+        /* Cannot change levels */                                       
+        break;                                                           
+                                                                         
+        /* IPRA */                                                           
+    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0:                                
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
+        iprX &= ~CYGARC_REG_IPRA_TMU0_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRA_TMU0_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_TMU1_TUNI1:                                
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
+        iprX &= ~CYGARC_REG_IPRA_TMU1_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRA_TMU1_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_TMU2_TUNI2:                                
+    case CYGNUM_HAL_INTERRUPT_TMU2_TICPI2:                               
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
+        iprX &= ~CYGARC_REG_IPRA_TMU2_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRA_TMU2_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_RTC_ATI:                                   
+    case CYGNUM_HAL_INTERRUPT_RTC_PRI:                                   
+    case CYGNUM_HAL_INTERRUPT_RTC_CUI:                                   
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);                          
+        iprX &= ~CYGARC_REG_IPRA_RTC_MASK;                               
+        iprX |= (level)*CYGARC_REG_IPRA_RTC_PRI1;                      
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);                         
+        break;                                                           
+                                                                         
+        /* IPRB */                                                           
+    case CYGNUM_HAL_INTERRUPT_SCI_ERI:                                   
+    case CYGNUM_HAL_INTERRUPT_SCI_RXI:                                   
+    case CYGNUM_HAL_INTERRUPT_SCI_TXI:                                   
+    case CYGNUM_HAL_INTERRUPT_SCI_TEI:                                   
+        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);                          
+        iprX &= ~CYGARC_REG_IPRB_SCI_MASK;                               
+        iprX |= (level)*CYGARC_REG_IPRB_SCI_PRI1;                      
+        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_WDT_ITI:                                   
+        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);                          
+        iprX &= ~CYGARC_REG_IPRB_WDT_MASK;                               
+        iprX |= (level)*CYGARC_REG_IPRB_WDT_PRI1;                      
+        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_REF_RCMI:                                  
+    case CYGNUM_HAL_INTERRUPT_REF_ROVI:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);                          
+        iprX &= ~CYGARC_REG_IPRB_REF_MASK;                               
+        iprX |= (level)*CYGARC_REG_IPRB_REF_PRI1;                      
+        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);                         
+        break;                                                           
+                                                                         
+#if (CYGARC_SH_MOD_INTC >= 2)
+#ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
+        /* IPRC */                                                           
+    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
+        iprX &= ~CYGARC_REG_IPRC_IRQ0_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRC_IRQ0_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
+        iprX &= ~CYGARC_REG_IPRC_IRQ1_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRC_IRQ1_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
+        iprX &= ~CYGARC_REG_IPRC_IRQ2_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRC_IRQ2_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);                          
+        iprX &= ~CYGARC_REG_IPRC_IRQ3_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRC_IRQ3_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);                         
+        break;                                                           
+#endif
+        /* IPRD */                                                           
+    case CYGNUM_HAL_INTERRUPT_PINT_PINT07:                               
+        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
+        iprX &= ~CYGARC_REG_IPRD_PINT07_MASK;                            
+        iprX |= (level)*CYGARC_REG_IPRD_PINT07_PRI1;                   
+        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_PINT_PINT8F:                               
+        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
+        iprX &= ~CYGARC_REG_IPRD_PINT8F_MASK;                            
+        iprX |= (level)*CYGARC_REG_IPRD_PINT8F_PRI1;                   
+        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
+        iprX &= ~CYGARC_REG_IPRD_IRQ5_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRD_IRQ5_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRD, iprX);                          
+        iprX &= ~CYGARC_REG_IPRD_IRQ4_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRD_IRQ4_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRD, iprX);                         
+        break;                                                           
+                                                                         
+        /* IPRE */                                                           
+    case CYGNUM_HAL_INTERRUPT_DMAC_DEI0:                                 
+    case CYGNUM_HAL_INTERRUPT_DMAC_DEI1:                                 
+    case CYGNUM_HAL_INTERRUPT_DMAC_DEI2:                                 
+    case CYGNUM_HAL_INTERRUPT_DMAC_DEI3:                                 
+        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
+        iprX &= ~CYGARC_REG_IPRE_DMAC_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRE_DMAC_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_IRDA_ERI1:                                 
+    case CYGNUM_HAL_INTERRUPT_IRDA_RXI1:                                 
+    case CYGNUM_HAL_INTERRUPT_IRDA_BRI1:                                 
+    case CYGNUM_HAL_INTERRUPT_IRDA_TXI1:                                 
+        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
+        iprX &= ~CYGARC_REG_IPRE_IRDA_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRE_IRDA_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_SCIF_ERI2:                                 
+    case CYGNUM_HAL_INTERRUPT_SCIF_RXI2:                                 
+    case CYGNUM_HAL_INTERRUPT_SCIF_BRI2:                                 
+    case CYGNUM_HAL_INTERRUPT_SCIF_TXI2:                                 
+        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
+        iprX &= ~CYGARC_REG_IPRE_SCIF_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRE_SCIF_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_ADC_ADI:                                   
+        HAL_READ_UINT16(CYGARC_REG_IPRE, iprX);                          
+        iprX &= ~CYGARC_REG_IPRE_ADC_MASK;                               
+        iprX |= (level)*CYGARC_REG_IPRE_ADC_PRI1;                      
+        HAL_WRITE_UINT16(CYGARC_REG_IPRE, iprX);                         
+        break;                                                           
+#endif // (CYGARC_SH_MOD_INTC >= 2)
+
+#if (CYGARC_SH_MOD_INTC >= 3)
+        /* IPRF */                                                           
+    case CYGNUM_HAL_INTERRUPT_LCDC_LCDI:                                 
+        HAL_READ_UINT16(CYGARC_REG_IPRF, iprX);                          
+        iprX &= ~CYGARC_REG_IPRF_LCDI_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRF_LCDI_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRF, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_PCC_PCC0:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRF, iprX);                          
+        iprX &= ~CYGARC_REG_IPRF_PCC0_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRF_PCC0_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRF, iprX);                         
+        break;                                                           
+    case CYGNUM_HAL_INTERRUPT_PCC_PCC1:                                  
+        HAL_READ_UINT16(CYGARC_REG_IPRF, iprX);                          
+        iprX &= ~CYGARC_REG_IPRF_PCC1_MASK;                              
+        iprX |= (level)*CYGARC_REG_IPRF_PCC1_PRI1;                     
+        HAL_WRITE_UINT16(CYGARC_REG_IPRF, iprX);                         
+        break;                                                           
+#endif // (CYGARC_SH_MOD_INTC >= 3)
+
+    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:                              
+    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:                              
+        /* Do nothing for these reserved vectors. */                     
+        break;                                                           
+
+    default:
+        CYG_FAIL("Unknown interrupt vector");                             
+        break;
+    }                                                                    
+}
+
+void
+hal_interrupt_mask(int vector)                                    
+{
+    switch( (vector) ) {                                                
+    case CYGNUM_HAL_INTERRUPT_NMI:                                        
+        /* fall through */                                                
+    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:          
+        /* Can only be masked by fiddling Imask in SR. */                 
+        break;                                                            
+    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0...CYGNUM_HAL_ISR_MAX:            
+        HAL_INTERRUPT_SET_LEVEL((vector), 0);                           
+        break;                                                            
+    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:                               
+    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:                               
+        /* Do nothing for these reserved vectors. */                      
+        break;                                                            
+    default:                                                              
+        CYG_FAIL("Unknown interrupt vector");                             
+        break;                                                            
+    }                                                                     
+}
+
+void
+hal_interrupt_unmask(int vector)                                  
+{
+    switch( (vector) ) {                                                
+    case CYGNUM_HAL_INTERRUPT_NMI:                                        
+        /* fall through */                                                
+    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:          
+        /* Can only be unmasked by fiddling Imask in SR. */               
+        break;                                                            
+    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0...CYGNUM_HAL_ISR_MAX:            
+        HAL_INTERRUPT_SET_LEVEL((vector), 1);                           
+        break;                                                            
+    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:                               
+    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:                               
+        /* Do nothing for these reserved vectors. */                      
+        break;                                                            
+    default:                                                              
+        CYG_FAIL("Unknown interrupt vector");                             
+        break;                                                            
+    }                                                                     
+}
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+#if (CYGARC_SH_MOD_INTC >= 2)
+    if ( (vector) >= CYGNUM_HAL_INTERRUPT_IRQ_IRQ0                      
+         && (vector) <= CYGNUM_HAL_INTERRUPT_IRQ_IRQ5) {                
+                                                                          
+        cyg_uint8 irr0;                                                   
+                                                                          
+        HAL_READ_UINT8(CYGARC_REG_IRR0, irr0);       
+        switch ( vector ) {                          
+#ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL                 
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:          
+            irr0 &= ~CYGARC_REG_IRR0_IRQ0;           
+            break;                                   
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:          
+            irr0 &= ~CYGARC_REG_IRR0_IRQ1;           
+            break;                                   
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:          
+            irr0 &= ~CYGARC_REG_IRR0_IRQ2;           
+            break;                                   
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:          
+            irr0 &= ~CYGARC_REG_IRR0_IRQ3;           
+            break;                                   
+#endif                                               
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:          
+            irr0 &= ~CYGARC_REG_IRR0_IRQ4;           
+            break;                                   
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:          
+            irr0 &= ~CYGARC_REG_IRR0_IRQ5;           
+            break;                                   
+        default:                                     
+            CYG_FAIL("Unhandled interrupt vector");  
+        }                                            
+        HAL_WRITE_UINT8(CYGARC_REG_IRR0, irr0);      
+    }                                                                     
+#endif
+}
+
+// Note: The PINTs can be masked and configured individually, even
+// though there are only two vectors. Maybe add some fake vectors just
+// for masking/configuring?
+void 
+hal_interrupt_configure(int vector, int level, int up)
+{
+#if (CYGARC_SH_MOD_INTC >= 2)
+    if ( (vector) >= CYGNUM_HAL_INTERRUPT_IRQ_IRQ0                     
+         && (vector) <= CYGNUM_HAL_INTERRUPT_IRQ_IRQ5) {               
+                                                                         
+        cyg_uint16 icr1, ss, mask;                                       
+        ss = 0;                                                          
+        mask = CYGARC_REG_ICR1_SENSE_UP|CYGARC_REG_ICR1_SENSE_LEVEL;     
+        if (up) ss |= CYGARC_REG_ICR1_SENSE_UP;                        
+        if (level) ss |= CYGARC_REG_ICR1_SENSE_LEVEL;                  
+        CYG_ASSERT(!(up && level), "Cannot trigger on high level!"); 
+                                                                         
+        switch( (vector) ) {                                           
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ5:                              
+            ss <<= CYGARC_REG_ICR1_SENSE_IRQ5_shift;                     
+            mask <<= CYGARC_REG_ICR1_SENSE_IRQ5_shift;                   
+            break;                                                       
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ4:                              
+            ss <<= CYGARC_REG_ICR1_SENSE_IRQ4_shift;                     
+            mask <<= CYGARC_REG_ICR1_SENSE_IRQ4_shift;                   
+            break;                                                       
+#ifndef CYGHWR_HAL_SH_IRQ_USE_IRQLVL
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ3:                              
+            ss <<= CYGARC_REG_ICR1_SENSE_IRQ3_shift;                     
+            mask <<= CYGARC_REG_ICR1_SENSE_IRQ3_shift;                   
+            break;                                                       
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ2:                              
+            ss <<= CYGARC_REG_ICR1_SENSE_IRQ2_shift;                     
+            mask <<= CYGARC_REG_ICR1_SENSE_IRQ2_shift;                   
+            break;                                                       
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ1:                              
+            ss <<= CYGARC_REG_ICR1_SENSE_IRQ1_shift;                     
+            mask <<= CYGARC_REG_ICR1_SENSE_IRQ1_shift;                   
+            break;                                                       
+        case CYGNUM_HAL_INTERRUPT_IRQ_IRQ0:                              
+            ss <<= CYGARC_REG_ICR1_SENSE_IRQ0_shift;                     
+            mask <<= CYGARC_REG_ICR1_SENSE_IRQ0_shift;                   
+            break;                                                       
+#endif
+        default:
+            CYG_FAIL("Unhandled interrupt vector");
+        }
+                                                                         
+        HAL_READ_UINT16(CYGARC_REG_ICR1, icr1);                          
+        icr1 &= ~mask;                                                   
+        icr1 |= ss;                                                      
+        HAL_WRITE_UINT16(CYGARC_REG_ICR1, icr1);                         
+    }                                                                    
+#endif
+}
+
+//---------------------------------------------------------------------------
+// End of hal_misc.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/src/var_mk_defs.c
@@ -0,0 +1,84 @@
+//==========================================================================
+//
+//      var_mk_defs.c
+//
+//      HAL (variant) "make defs" program
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, jskov
+// Date:         2000-02-21
+// Purpose:      SH architecture dependent definition generator
+// Description:  This file contains code that can be compiled by the target
+//               compiler and used to generate machine specific definitions
+//               suitable for use in assembly code.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_arch.h>           // HAL header
+#include <cyg/hal/hal_intr.h>           // HAL header
+#include <cyg/hal/hal_cache.h>          // HAL header
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h>
+# include <cyg/kernel/instrmnt.h>
+#endif
+
+/*
+ * This program is used to generate definitions needed by
+ * assembly language modules.
+ *
+ * This technique was first used in the OSF Mach kernel code:
+ * generate asm statements containing #defines,
+ * compile this file to assembler, and then extract the
+ * #defines from the assembly-language output.
+ */
+
+#define DEFINE(sym, val) \
+        asm volatile("\n\t.equ\t" #sym ",%0" : : "i" (val))
+
+int
+main(void)
+{
+    // Caching details
+    DEFINE(CYGARC_REG_CACHE_ADDRESS_FLUSH, CYGARC_REG_CACHE_ADDRESS_FLUSH);
+    DEFINE(CYGARC_REG_CACHE_ADDRESS_BASE,CYGARC_REG_CACHE_ADDRESS_BASE);
+    DEFINE(CYGARC_REG_CACHE_ADDRESS_TOP,CYGARC_REG_CACHE_ADDRESS_TOP);
+    DEFINE(CYGARC_REG_CACHE_ADDRESS_STEP,CYGARC_REG_CACHE_ADDRESS_STEP);
+    DEFINE(HAL_UCACHE_SIZE, HAL_UCACHE_SIZE);
+    DEFINE(HAL_UCACHE_WAYS, HAL_UCACHE_WAYS);
+    DEFINE(HAL_UCACHE_LINE_SIZE, HAL_UCACHE_LINE_SIZE);
+
+}
+
+//--------------------------------------------------------------------------
+// EOF var_mk_defs.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh3/current/src/variant.S
@@ -0,0 +1,192 @@
+##==========================================================================
+##
+##      variant.S
+##
+##      SH3 variant assembly code
+##
+##==========================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##==========================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):    jskov
+## Contributors: jskov
+## Date:         2000-10-30
+## Purpose:      SH3 misc assembly code
+######DESCRIPTIONEND####
+##
+##==========================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_sh.h>
+
+#include <cyg/hal/sh_regs.h>
+#include <cyg/hal/sh3_offsets.inc>
+
+#---------------------------------------------------------------------------
+# Cache operations
+# These need to be written in assembly to ensure they do not rely on data
+# in cachable space (i.e., code must use registers exclusively, not the stack).
+
+# This macro must be used at the top of each cache function. It ensures
+# that the code gets executed from a shadow region where caching is disabled
+# (0xA0000000).
+        .macro GOTO_NONCACHED_SHADOW
+        mova    10f,r0
+        mov.l   $MASK,r1
+        and     r1,r0
+        mov.l   $BASE,r1
+        or      r1,r0
+        jmp     @r0
+         nop
+        .align  2
+10:
+        .endm
+
+        .globl _cyg_hal_cache_enable
+_cyg_hal_cache_enable:
+        GOTO_NONCACHED_SHADOW
+        mov     #CYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov     #CYGARC_REG_CCR_CE,r2
+        mov.l   r2,@r1
+        nop
+        rts
+         nop
+
+        .globl _cyg_hal_cache_disable
+_cyg_hal_cache_disable:
+        GOTO_NONCACHED_SHADOW
+        mov     #CYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov     #CYGARC_REG_CCR_CE,r2
+        not     r2,r2
+        and     r2,r0
+        mov.l   r0,@r1
+        nop
+        rts
+         nop
+        
+        .globl _cyg_hal_cache_invalidate_all
+_cyg_hal_cache_invalidate_all:
+        GOTO_NONCACHED_SHADOW
+        mov     #CYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov     #CYGARC_REG_CCR_CF,r2
+        or      r2,r0
+        mov.l   r0,@r1
+        nop                             ! Nothing in the docs suggest we need
+        nop                             ! nops here, but without them, the
+        nop                             ! CPU crashes.
+        rts
+         nop
+
+        .globl _cyg_hal_cache_sync
+_cyg_hal_cache_sync:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $CYGARC_REG_CACHE_ADDRESS_FLUSH,r0
+        mov.l   $CYGARC_REG_CACHE_ADDRESS_BASE,r1
+        mov.l   $CYGARC_REG_CACHE_ADDRESS_TOP,r2
+        mov.l   $CYGARC_REG_CACHE_ADDRESS_STEP,r3
+1:      cmp/hi  r1,r2
+        bf      2f
+        mov.l   r0,@r1
+        bra     1b        
+         add     r3,r1                  ! delay slot!
+2:      nop
+        rts
+         nop
+
+	! r4 = base
+	! r5 = size
+        .globl _cyg_hal_cache_sync_region
+_cyg_hal_cache_sync_region:
+        GOTO_NONCACHED_SHADOW
+	mov.l   10f,r0
+	and	r4,r0		! array index
+        mov.l   11f,r1
+	add	r0,r1           ! base (aligned, A set)
+
+	! make sure top is aligned to start of _next_ cache line
+	mov	r1,r0
+	add     r5,r0		! top (non-aligned)
+	add	#2*HAL_UCACHE_LINE_SIZE-1,r0
+	mov.l	13f,r2
+	and	r0,r2
+
+        mov.l   $CYGARC_REG_CACHE_ADDRESS_STEP,r3
+        mov.l   12f,r5
+1:      cmp/hi  r1,r2
+        bf      3f
+	mov	r4,r0		! create address tag
+	and	r5,r0
+	mov.l   r0,@r1          ! store tag in array, causing (sync+)invalidate
+		                ! if the tag matches any of the lines
+        add     r3,r4		! inc address tag
+        bra     1b        
+         add     r3,r1          ! inc array index, delay slot!
+3:      nop
+        rts
+         nop
+
+	.align 2
+10:	.long	((HAL_UCACHE_SIZE/HAL_UCACHE_WAYS)-1)&~0xf ! mask
+11:	.long   CYGARC_REG_CACHE_ADDRESS_BASE|CYGARC_REG_CACHE_ADDRESS_ADDRESS
+12:	.long	CYGARC_REG_CACHE_ADDRESS_TAG_Mask
+13:	.long   ~(HAL_UCACHE_LINE_SIZE-1)
+	
+        .globl _cyg_hal_cache_write_mode
+_cyg_hal_cache_write_mode:
+        GOTO_NONCACHED_SHADOW
+        # Mode argument in r4.
+        # Read current state and mask out the two caching mode bits
+        mov     #CYGARC_REG_CCR,r1
+        mov.l   @r1,r3
+        mov     #CYGARC_REG_CCR_CB|CYGARC_REG_CCR_WT,r2
+	and	r2,r4
+        not     r2,r2
+        and     r2,r3
+        # Or in the new settings and restore to CCR
+        or      r4,r3
+        mov.l   r3,@r1
+        nop
+        rts
+         nop
+
+        .align  2
+$CYGARC_REG_CACHE_ADDRESS_FLUSH:
+        .long   CYGARC_REG_CACHE_ADDRESS_FLUSH
+$CYGARC_REG_CACHE_ADDRESS_BASE:
+        .long   CYGARC_REG_CACHE_ADDRESS_BASE
+$CYGARC_REG_CACHE_ADDRESS_TOP:
+        .long   CYGARC_REG_CACHE_ADDRESS_TOP
+$CYGARC_REG_CACHE_ADDRESS_STEP:
+        .long   CYGARC_REG_CACHE_ADDRESS_STEP
+
+
+$MASK:
+        .long   0x1fffffff              ! mask off top 3 bits
+$BASE:
+        .long   0xa0000000              ! base of non-cachable memory
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/ChangeLog
@@ -0,0 +1,39 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* Many changes to bring the variant HAL up to date with the later
+	SH arch HAL changes. Rewrote caching code to handle the split
+	cache.
+
+2000-08-16  Haruki Kashiwaya  <kashiwaya@redhat.com>
+
+	* Set up directory structure.
+
+2000-04-18  Ryozaburo Suzuki  <ryos@atom-tc.or.jp>
+
+	* Contributed sources for the CqREEK/SH-4 platform.
+
+//===========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//===========================================================================
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/cdl/hal_sh_sh4.cdl
@@ -0,0 +1,145 @@
+# ====================================================================
+#
+#      hal_sh_sh4.cdl
+#
+#      SH4 architectural HAL package configuration data
+#
+# ====================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+# ====================================================================
+######DESCRIPTIONBEGIN####
+#
+# Author(s):      jskov
+# Original data:  jskov
+# Contributors:
+# Date:           1999-10-29
+#
+#####DESCRIPTIONEND####
+#
+# ====================================================================
+
+cdl_package CYGPKG_HAL_SH_SH4 {
+    display       "SH4 architecture"
+    parent        CYGPKG_HAL_SH
+    hardware
+    include_dir   cyg/hal
+    define_header hal_sh_sh4.h
+    description   "
+        The SH4 (SuperH 4) architecture HAL package provides generic
+        support for this processor architecture. It is also
+        necessary to select a specific target platform HAL
+        package."
+
+    compile        sh4_scif.c var_misc.c variant.S
+
+    define_proc {
+        puts $::cdl_system_header "#define CYGBLD_HAL_VARIANT_H   <pkgconf/hal_sh_sh4.h>"
+    }
+
+    # The "-o file" is a workaround for CR100958 - without it the
+    # output file would end up in the source directory under CygWin.
+    # n.b. grep does not behave itself under win32
+    make -priority 1 {
+        <PREFIX>/include/cyg/hal/sh4_offsets.inc : <PACKAGE>/src/var_mk_defs.c
+        $(CC) $(CFLAGS) $(INCLUDE_PATH) -Wp,-MD,sh4_offsets.tmp -o var_mk_defs.tmp -S $<
+        fgrep .equ var_mk_defs.tmp | sed s/#// > $@
+        @echo $@ ": \\" > $(notdir $@).deps
+        @tail +2 sh4_offsets.tmp >> $(notdir $@).deps
+        @echo >> $(notdir $@).deps
+        @rm sh4_offsets.tmp var_mk_defs.tmp
+    }
+
+    # CPU variant supported
+    cdl_component CYGPKG_HAL_SH_7750 {
+        display       "SH 7750 microprocessor"
+        parent        CYGPKG_HAL_SH_CPU
+        implements    CYGINT_HAL_SH_VARIANT
+        default_value 0
+        no_define
+        define        -file=system.h CYGPKG_HAL_SH_7750
+        description "
+            The SH4 7750 microprocessor. This is an embedded part that in
+            addition to the SH4 processor core has built in peripherals
+            such as memory controllers, DMA controllers, serial ports and
+            timers/counters."               
+        define_proc {
+            puts $cdl_system_header "#define CYGBLD_HAL_CPU_MODULES_H <cyg/hal/mod_7750.h>"
+        }
+    }
+
+    cdl_component CYGHWR_HAL_SH_CLOCK_SETTINGS {
+        display          "SH on-chip generic clock controls"
+        description      "
+            The various clocks used by the system are controlled by
+            these options, some of which are derived from platform
+            settings."
+        flavor        none
+        no_define
+
+        cdl_option CYGHWR_HAL_SH_TMU_PRESCALE_0 {
+            display       "TMU counter 0 prescaling"
+            description   "
+                The peripheral clock is driving the counter used for
+                the real-time clock, prescaled by this factor."
+            flavor        data
+            legal_values  { 4 16 64 256 }
+            default_value 4
+        }
+
+        cdl_option CYGHWR_HAL_SH_PLL1_OUTPUT {
+            display    "The clock output from PLL1"
+            no_define
+            flavor     data
+            calculated { CYGHWR_HAL_SH_OOC_XTAL * CYGHWR_HAL_SH_OOC_PLL_1 }
+        }
+
+        cdl_option CYGHWR_HAL_SH_PROCESSOR_SPEED {
+            display          "Processor clock speed (MHz)"
+            flavor           data
+            calculated       { CYGHWR_HAL_SH_PLL1_OUTPUT / CYGHWR_HAL_SH_OOC_DIVIDER_IFC }
+            description      "
+                The core (CPU, cache and MMU) speed is computed from
+                the input clock speed and the IFC divider setting."
+        }
+
+        cdl_option CYGHWR_HAL_SH_BOARD_SPEED {
+            display          "Platform bus clock speed (MHz)"
+            flavor           data
+            calculated       { CYGHWR_HAL_SH_PLL1_OUTPUT / CYGHWR_HAL_SH_OOC_DIVIDER_BFC }
+            description      "
+                The bus speed is computed from
+                the input clock speed and the BFC divider setting."
+        }
+
+        cdl_option CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED {
+            display          "Processor on-chip peripheral clock speed (MHz)"
+            flavor           data
+            calculated       { CYGHWR_HAL_SH_PLL1_OUTPUT / CYGHWR_HAL_SH_OOC_DIVIDER_PFC }
+            description      "
+                The peripheral speed is computed from the input clock
+                speed and the PFC divider setting."
+        }
+    }
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_7750.h
@@ -0,0 +1,96 @@
+#ifndef CYGONCE_HAL_MOD_77xx_H
+#define CYGONCE_HAL_MOD_77xx_H
+
+//=============================================================================
+//
+//      mod_7750.h
+//
+//      List modules available on CPU
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:Haruki Kashiwaya
+// Date:        2000-08-09
+// Purpose:     Define modules (and versions) available on this CPU.
+// Usage:       Included from <cyg/hal/sh_regs.h>
+//
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//-----------------------------------------------------------------------------
+// Modules provided by the CPU
+
+#define CYGARC_SH_MOD_CPG  1
+#define CYGARC_SH_MOD_SCIF 1
+
+
+//-----------------------------------------------------------------------------
+// Extra details for Cache Module (CAC)
+
+//=============================================================================
+// Icache
+// Cache dimenions
+#define CYGARC_SH_MOD_CAC_I_SIZE        8192  // Size of cache in bytes
+#define CYGARC_SH_MOD_CAC_I_LINE_SIZE   32    // Size of a cache line
+#define CYGARC_SH_MOD_CAC_I_WAYS        1     // Associativity of the cache
+
+// Cache addressing information
+// entry: bits 12 -  5
+#define CYGARC_SH_MOD_ICAC_ADDRESS_BASE   0xf0000000
+#define CYGARC_SH_MOD_ICAC_ADDRESS_TOP    0xf0002000
+#define CYGARC_SH_MOD_ICAC_ADDRESS_STEP   0x00000020
+// V : bit 0
+// Writing zero to V forces an invalidate of the line
+#define CYGARC_SH_MOD_ICAC_ADDRESS_FLUSH  0x00000000
+
+
+//=============================================================================
+// Dcache
+// Cache dimenions
+#define CYGARC_SH_MOD_CAC_D_SIZE        16384 // Size of cache in bytes
+#define CYGARC_SH_MOD_CAC_D_LINE_SIZE   32    // Size of a cache line
+#define CYGARC_SH_MOD_CAC_D_WAYS        1     // Associativity of the cache
+
+// Cache addressing information
+// entry: bits 13 -  5
+#define CYGARC_SH_MOD_DCAC_ADDRESS_BASE   0xf4000000
+#define CYGARC_SH_MOD_DCAC_ADDRESS_TOP    0xf0004000
+#define CYGARC_SH_MOD_DCAC_ADDRESS_STEP   0x00000020
+// U : bit 1
+// V : bit 0
+// Writing zero to both forces a flush of the line if it is dirty.
+#define CYGARC_SH_MOD_DCAC_ADDRESS_FLUSH  0x00000000
+
+//-----------------------------------------------------------------------------
+// Extra details for interrupt handling
+#define CYGARC_SH_SOFTWARE_IP_UPDATE
+
+#endif // CYGONCE_HAL_MOD_77xx_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_bsc.h
@@ -0,0 +1,176 @@
+//=============================================================================
+//
+//      mod_regs_bsc.h
+//
+//      BSC (bus state controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// Register definitions
+#define CYGARC_REG_BCR1                 0xFF800000
+#define CYGARC_REG_BCR2                 0xFF800004
+#define CYGARC_REG_WCR1                 0xFF800008
+#define CYGARC_REG_WCR2                 0xFF80000C
+#define CYGARC_REG_WCR3                 0xFF800010
+#define CYGARC_REG_MCR                  0xFF800014
+#define CYGARC_REG_PCR                  0xFF800018
+#define CYGARC_REG_RTCSR                0xFF80001C
+#define CYGARC_REG_RTCNT                0xFF800020
+#define CYGARC_REG_RTCOR                0xFF800024
+#define CYGARC_REG_RFCR                 0xFF800028
+
+#define CYGARC_REG_SDMR2                0xFF90008c
+
+#define CYGARC_REG_SDMR_AREA2_BASE      0xff900000
+#define CYGARC_REG_SDMR_AREA3_BASE      0xff940000
+
+#define CYGARC_REG_BCR1_DRAMTP2         0x0010
+#define CYGARC_REG_BCR1_DRAMTP1         0x0008
+#define CYGARC_REG_BCR1_DRAMTP0         0x0004
+
+// Bus widths for areas
+#define CYGARC_REG_BCR2_A6_8            0x1000
+#define CYGARC_REG_BCR2_A6_16           0x2000
+#define CYGARC_REG_BCR2_A6_32           0x3000
+#define CYGARC_REG_BCR2_A5_8            0x0400
+#define CYGARC_REG_BCR2_A5_16           0x0800
+#define CYGARC_REG_BCR2_A5_32           0x0c00
+#define CYGARC_REG_BCR2_A4_8            0x0100
+#define CYGARC_REG_BCR2_A4_16           0x0200
+#define CYGARC_REG_BCR2_A4_32           0x0300
+#define CYGARC_REG_BCR2_A3_8            0x0040
+#define CYGARC_REG_BCR2_A3_16           0x0080
+#define CYGARC_REG_BCR2_A3_32           0x00c0
+#define CYGARC_REG_BCR2_A2_8            0x0010
+#define CYGARC_REG_BCR2_A2_16           0x0020
+#define CYGARC_REG_BCR2_A2_32           0x0030
+
+// Memory type selection and other IO behavior controls
+#define CYGARC_REG_BCR1_PULA            0x8000 // Pin A25 to A0 Pull-Up
+#define CYGARC_REG_BCR1_PULD            0x4000 // Pin D31 to D0 Pull-Up
+#define CYGARC_REG_BCR1_HIZMEM          0x2000 // Hi-Z memory control
+#define CYGARC_REG_BCR1_HIZCNT          0x1000 // High-Z Control
+#define CYGARC_REG_BCR1_ENDIAN          0x0800 // Endian Flag
+#define CYGARC_REG_BCR1_A0_BST_MASK     0x0600 // Area 0 Burst ROM Control
+#define CYGARC_REG_BCR1_A0_BST_4        0x0200
+#define CYGARC_REG_BCR1_A0_BST_8        0x0400
+#define CYGARC_REG_BCR1_A0_BST_16       0x0600
+#define CYGARC_REG_BCR1_A5_BST_MASK     0x0180 // Area 5 Burst ROM Control
+#define CYGARC_REG_BCR1_A5_BST_4        0x0080
+#define CYGARC_REG_BCR1_A5_BST_8        0x0100
+#define CYGARC_REG_BCR1_A5_BST_16       0x0180
+#define CYGARC_REG_BCR1_A6_BST_MASK     0x0060 // Area 6 Burst ROM Control
+#define CYGARC_REG_BCR1_A6_BST_4        0x0020
+#define CYGARC_REG_BCR1_A6_BST_8        0x0040
+#define CYGARC_REG_BCR1_A6_BST_16       0x0060
+#define CYGARC_REG_BCR1_DRAMTP_MASK     0x001c // Area 2, Area 3 Memory Type
+#define CYGARC_REG_BCR1_A5PCM           0x0002 // Area 5 Bus Type
+#define CYGARC_REG_BCR1_A6PCM           0x0001 // Area 6 Bus Type
+
+// Intercycle wait states
+#define CYGARC_REG_WCR1_WAITSEL         0x8000 // WAIT Sampling Timing Select
+#define CYGARC_REG_WCR1_A6I_MASK        0x3000 // Intercycle Idle Specification
+#define CYGARC_REG_WCR1_A6I_SHIFT       12
+#define CYGARC_REG_WCR1_A5I_MASK        0x0c00
+#define CYGARC_REG_WCR1_A5I_SHIFT       10
+#define CYGARC_REG_WCR1_A4I_MASK        0x0300
+#define CYGARC_REG_WCR1_A4I_SHIFT       8
+#define CYGARC_REG_WCR1_A3I_MASK        0x00c0
+#define CYGARC_REG_WCR1_A3I_SHIFT       6
+#define CYGARC_REG_WCR1_A2I_MASK        0x0030
+#define CYGARC_REG_WCR1_A2I_SHIFT       4
+#define CYGARC_REG_WCR1_A0I_MASK        0x0003
+#define CYGARC_REG_WCR1_A0I_SHIFT       0
+
+#define CYGARC_REG_WCR1_0WS         0
+#define CYGARC_REG_WCR1_1WS         1
+#define CYGARC_REG_WCR1_2WS         2
+#define CYGARC_REG_WCR1_3WS         3
+
+
+// Wait states
+#define CYGARC_REG_WCR2_A6_MASK         0xe000 // Wait states + burst pitch
+#define CYGARC_REG_WCR2_A6_SHIFT        13
+#define CYGARC_REG_WCR2_A5_MASK         0x1c00 // Wait states + burst pitch
+#define CYGARC_REG_WCR2_A5_SHIFT        10
+#define CYGARC_REG_WCR2_A4_MASK         0x0380 // Wait states
+#define CYGARC_REG_WCR2_A4_SHIFT        7
+#define CYGARC_REG_WCR2_A3_MASK         0x0060 // Wait states / CAS latency
+#define CYGARC_REG_WCR2_A3_SHIFT        5
+#define CYGARC_REG_WCR2_A2_MASK         0x0018 // Wait states / CAS latency
+#define CYGARC_REG_WCR2_A2_SHIFT        3
+#define CYGARC_REG_WCR2_A0_MASK         0x0007 // Wait states + burst pitch
+#define CYGARC_REG_WCR2_A0_SHIFT        0
+
+#define CYGARC_REG_WCR2_0WS             0
+#define CYGARC_REG_WCR2_1WS             1
+#define CYGARC_REG_WCR2_2WS             2
+#define CYGARC_REG_WCR2_3WS             3
+#define CYGARC_REG_WCR2_4WS             4
+#define CYGARC_REG_WCR2_6WS             5
+#define CYGARC_REG_WCR2_8WS             6
+#define CYGARC_REG_WCR2_10WS            7
+
+
+
+//-----------------------------------------------------------------------------
+// Calculate constants needed to drive the proper SDRAM refresh rate. Argument
+// is delay between required refresh events in microseconds (us). Should be
+// available off the SDRAM spec sheet.
+// These should be a part of a fully CDLicized memory controller setup.
+#define CYGARC_RTCSR_PRESCALE(_r_)                                      \
+(((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(4*1000000))<256) ? 4 :              \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(16*1000000))<256) ? 16 :            \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(64*1000000))<256) ? 64 :            \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(256*1000000))<256) ? 256 :          \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(1024*1000000))<256) ? 1024 :        \
+ ((CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(2048*1000000))<256) ? 2048 : 4096)
+
+// These two macros provide the static values we need to stuff into the
+// registers.
+#define CYGARC_RTCSR_CKSx(_r_)                                  \
+    ((   4 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x08 :              \
+     (  16 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x10 :              \
+     (  64 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x18 :              \
+     ( 256 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x20 :              \
+     (1024 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x28 :              \
+     (2048 == CYGARC_RTCSR_PRESCALE(_r_)) ? 0x30 : 0x38 )
+
+#define CYGARC_RTCSR_N(_r_)        \
+       (CYGHWR_HAL_SH_BOARD_SPEED*(_r_)/(CYGARC_RTCSR_PRESCALE(_r_)*1000000))
+
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_cac.h
@@ -0,0 +1,61 @@
+//=============================================================================
+//
+//      mod_regs_cac.h
+//
+//      CAC (cache) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+// Besides the below, cache sizes are defined in the CPU variant module
+// headers (mod_77xx.h).
+
+//--------------------------------------------------------------------------
+// Cache registers
+#define CYGARC_REG_CCR                  0xFF00001C
+
+#define CYGARC_REG_CCR_IIX              0x00008000  // IC index enable
+#define CYGARC_REG_CCR_ICI              0x00000800  // IC invalidation
+#define CYGARC_REG_CCR_ICE              0x00000100  // IC Enable
+#define CYGARC_REG_CCR_OIX              0x00000080  // OC index enable
+#define CYGARC_REG_CCR_ORA              0x00000020  // OC RAM enable
+#define CYGARC_REG_CCR_OCI              0x00000008  // OC Invalidation
+#define CYGARC_REG_CCR_CB               0x00000004  // Copy-Back enable
+#define CYGARC_REG_CCR_WT               0x00000002  // Write Through enable
+#define CYGARC_REG_CCR_OCE              0x00000001  // OC Enable
+
+#define CYGARC_REG_CCR_CE               0x00000101  // IC, OC Enable
+#define CYGARC_REG_CCR_CF               0x00000808  // IC, OC Invalidation
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_cpg.h
@@ -0,0 +1,154 @@
+//=============================================================================
+//
+//      mod_regs_cpg.h
+//
+//      CPG (clock pulse generator) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// Oscillator control registers
+#define CYGARC_REG_FRQCR                0xFFC00000
+#define CYGARC_REG_STBCR                0xFFC00004
+#define CYGARC_REG_WTCNT                0xFFC00008 // read 8bit, write 16bit
+#define CYGARC_REG_WTCSR                0xFFC0000C // read 8bit, write 16bit
+#define CYGARC_REG_STBCR2               0xFFC00010
+
+#define CYGARC_REG_WTCNT_WRITE          0x5a00     // top 8bit value for write
+
+#define CYGARC_REG_WTCSR_WRITE          0xa500     // top 8bit value for write
+#define CYGARC_REG_WTCSR_TME            0x80       // timer enable
+#define CYGARC_REG_WTCSR_WT_IT          0x40       // watchdog(1)/interval(0)
+#define CYGARC_REG_WTCSR_RSTS           0x20       // manual(1)/poweron(0)
+#define CYGARC_REG_WTCSR_WOVF           0x10       // watchdog overflow
+#define CYGARC_REG_WTCSR_IOVF           0x08       // interval overflow
+#define CYGARC_REG_WTCSR_CKS2           0x04       // clock select 2
+#define CYGARC_REG_WTCSR_CKS1           0x02       // clock select 1
+#define CYGARC_REG_WTCSR_CKS0           0x01       // clock select 0
+#define CYGARC_REG_WTCSR_CKSx_MASK      0x07       // clock select mask
+// This is the period (in us) between watchdog reset and overflow.
+// Note: We use max timeout delay for now.
+#define CYGARC_REG_WTCSR_CKSx_SETTING   0x07       // max delay
+
+#define CYGARC_REG_WTCSR_PERIOD         ((1000000000/(CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/4096))*256)
+
+// Translate various CDL clock configurations to register equivalents
+// for the various CPG versions
+#if   (CYGARC_SH_MOD_CPG == 1) // ---------------------------- V1
+
+// PLL1
+#if   (CYGHWR_HAL_SH_OOC_PLL_1 == 0)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0000
+#elif (CYGHWR_HAL_SH_OOC_PLL_1 == 6)
+# define CYGARC_REG_FRQCR_INIT_PLL1 0x0400
+#else
+# error "Unsupported PLL1 setting"
+#endif
+
+// PLL2
+#if   (CYGHWR_HAL_SH_OOC_PLL_2 == 0)
+# define CYGARC_REG_FRQCR_INIT_PLL2 0x0000
+#elif (CYGHWR_HAL_SH_OOC_PLL_2 == 1)
+# define CYGARC_REG_FRQCR_INIT_PLL2 0x0200
+#else
+# error "Unsupported PLL2 setting"
+#endif
+
+// Divider IFC
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_IFC == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_IFC 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_IFC == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_IFC 0x0040
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_IFC == 3)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_IFC 0x0080
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_IFC == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_IFC 0x00c0
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_IFC == 6)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_IFC 0x0100
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_IFC == 8)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_IFC 0x0140
+#else
+# error "Unsupported Divider IFC setting"
+#endif
+
+// Divider BFC
+#if   (CYGHWR_HAL_SH_OOC_DIVIDER_BFC == 1)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_BFC 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_BFC == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_BFC 0x0008
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_BFC == 3)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_BFC 0x0010
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_BFC == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_BFC 0x0018
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_BFC == 6)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_BFC 0x0020
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_BFC == 8)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_BFC 0x0028
+#else
+# error "Unsupported Divider BFC setting"
+#endif
+
+// Divider PFC
+#if (CYGHWR_HAL_SH_OOC_DIVIDER_PFC == 2)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_PFC 0x0000
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_PFC == 3)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_PFC 0x0001
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_PFC == 4)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_PFC 0x0002
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_PFC == 6)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_PFC 0x0003
+#elif (CYGHWR_HAL_SH_OOC_DIVIDER_PFC == 8)
+# define CYGARC_REG_FRQCR_INIT_DIVIDER_PFC 0x0004
+#else
+# error "Unsupported Divider PFC setting"
+#endif
+
+
+// CKOEN
+#ifdef CYGHWR_HAL_SH_OOC_CKIO
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0800
+#else
+# define CYGARC_REG_FRQCR_INIT_CKOEN 0x0000
+#endif
+
+#else
+
+# error "Unsupported CPG version"
+
+#endif
+
+// Init value
+#define CYGARC_REG_FRQCR_INIT (CYGARC_REG_FRQCR_INIT_PLL1|CYGARC_REG_FRQCR_INIT_PLL2|CYGARC_REG_FRQCR_INIT_DIVIDER_IFC|CYGARC_REG_FRQCR_INIT_DIVIDER_BFC|CYGARC_REG_FRQCR_INIT_DIVIDER_PFC|CYGARC_REG_FRQCR_INIT_CKOEN)
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_dma.h
@@ -0,0 +1,111 @@
+//=============================================================================
+//
+//      mod_regs_dma.h
+//
+//      DMA (direct memory access) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// DMA Controller registers
+
+#define CYGARC_REG_SAR0                 0xa4000020
+#define CYGARC_REG_DAR0                 0xa4000024
+#define CYGARC_REG_DMATCR0              0xa4000028
+#define CYGARC_REG_CHCR0                0xa400002c
+#define CYGARC_REG_SAR1                 0xa4000030
+#define CYGARC_REG_DAR1                 0xa4000034
+#define CYGARC_REG_DMATCR1              0xa4000038
+#define CYGARC_REG_CHCR1                0xa400003c
+#define CYGARC_REG_SAR2                 0xa4000040
+#define CYGARC_REG_DAR2                 0xa4000044
+#define CYGARC_REG_DMATCR2              0xa4000048
+#define CYGARC_REG_CHCR2                0xa400004c
+#define CYGARC_REG_SAR3                 0xa4000050
+#define CYGARC_REG_DAR3                 0xa4000054
+#define CYGARC_REG_DMATCR3              0xa4000058
+#define CYGARC_REG_CHCR3                0xa400005c
+#define CYGARC_REG_DMAOR                0xa4000060
+
+// Offsets from base register
+#define CYGARC_REG_SAR                  0x00
+#define CYGARC_REG_DAR                  0x04
+#define CYGARC_REG_DMATCR               0x08
+#define CYGARC_REG_CHCR                 0x0c
+
+
+// DMA Channel Control Register. If there's a digit suffix to CHCR the flag
+// is only valid in the listed channels.
+#define CYGARC_REG_CHCR3_DI             0x00100000 // direct/indirect selection
+#define CYGARC_REG_CHCR2_RO             0x00080000 // source address reload
+#define CYGARC_REG_CHCR01_RL            0x00040000 // request check level
+#define CYGARC_REG_CHCR01_AM            0x00020000 // acknowledge mode
+#define CYGARC_REG_CHCR01_AL            0x00010000 // acknowledge level
+#define CYGARC_REG_CHCR_DM1             0x00008000 // destination address mode
+#define CYGARC_REG_CHCR_DM0             0x00004000
+#define CYGARC_REG_CHCR_SM1             0x00002000 // source address mode
+#define CYGARC_REG_CHCR_SM0             0x00001000
+#define CYGARC_REG_CHCR_RS3             0x00000800 // resource select
+#define CYGARC_REG_CHCR_RS2             0x00000400
+#define CYGARC_REG_CHCR_RS1             0x00000200
+#define CYGARC_REG_CHCR_RS0             0x00000100
+#define CYGARC_REG_CHCR01_DS            0x00000040 // DREQ select
+#define CYGARC_REG_CHCR_TM              0x00000020 // transmit mode
+#define CYGARC_REG_CHCR_TS1             0x00000010 // transmit size
+#define CYGARC_REG_CHCR_TS0             0x00000008
+#define CYGARC_REG_CHCR_IE              0x00000004 // interrupt enable
+#define CYGARC_REG_CHCR_TE              0x00000002 // transfer end
+#define CYGARC_REG_CHCR_DE              0x00000001 // DMAC enable
+
+// Resource select options
+#define CYGARC_REG_CHCR_RS_EXT_DUAL     0x00000000
+#define CYGARC_REG_CHCR_RS_EXT_EX_DAC   0x00000100
+#define CYGARC_REG_CHCR_RS_EXT_DAC_EX   0x00000300
+#define CYGARC_REG_CHCR_RS_AUTO         0x00000400
+#define CYGARC_REG_CHCR_RS_IRDA_TX      0x00000a00
+#define CYGARC_REG_CHCR_RS_IRDA_RX      0x00000b00
+#define CYGARC_REG_CHCR_RS_SCIF_TX      0x00000c00
+#define CYGARC_REG_CHCR_RS_SCIF_RX      0x00000d00
+#define CYGARC_REG_CHCR_RS_AD           0x00000e00
+#define CYGARC_REG_CHCR_RS_CMT          0x00000f00
+
+
+// DMA Operation Register
+#define CYGARC_REG_DMAOR_PR1            0x0200     // priority level
+#define CYGARC_REG_DMAOR_PR0            0x0100
+#define CYGARC_REG_DMAOR_AE             0x0004     // address error flag
+#define CYGARC_REG_DMAOR_NMIF           0x0002     // NMI flag
+#define CYGARC_REG_DMAOR_DME            0x0001     // DMA master enable
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_intc.h
@@ -0,0 +1,76 @@
+//=============================================================================
+//
+//      mod_regs_intc.h
+//
+//      INTC (interrupt controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// Interrupt registers, module type 1
+#define CYGARC_REG_EXCEVT               0xFF000024
+#define CYGARC_REG_INTEVT               0xFF000028
+
+#define CYGARC_REG_ICR                  0xFFD00000
+#define CYGARC_REG_IPRA                 0xFFD00004
+#define CYGARC_REG_IPRB                 0xFFD00008
+#define CYGARC_REG_IPRC                 0xFFD0000C
+
+#define CYGARC_REG_IPRA_TMU0_MASK       0xf000
+#define CYGARC_REG_IPRA_TMU0_PRI1       0x1000
+#define CYGARC_REG_IPRA_TMU1_MASK       0x0f00
+#define CYGARC_REG_IPRA_TMU1_PRI1       0x0100
+#define CYGARC_REG_IPRA_TMU2_MASK       0x00f0
+#define CYGARC_REG_IPRA_TMU2_PRI1       0x0010
+#define CYGARC_REG_IPRA_RTC_MASK        0x000f
+#define CYGARC_REG_IPRA_RTC_PRI1        0x0001
+
+#define CYGARC_REG_IPRB_WDT_MASK        0xf000
+#define CYGARC_REG_IPRB_WDT_PRI1        0x1000
+#define CYGARC_REG_IPRB_REF_MASK        0x0f00
+#define CYGARC_REG_IPRB_REF_PRI1        0x0100
+#define CYGARC_REG_IPRB_SCI_MASK        0x00f0
+#define CYGARC_REG_IPRB_SCI_PRI1        0x0010
+
+#define CYGARC_REG_IPRC_GPIO_MASK       0xF000
+#define CYGARC_REG_IPRC_GPIO_PRI1       0x1000
+#define CYGARC_REG_IPRC_DMAC_MASK       0x0F00
+#define CYGARC_REG_IPRC_DMAC_PRI1       0x0100
+#define CYGARC_REG_IPRC_SCIF_MASK       0x00F0
+#define CYGARC_REG_IPRC_SCIF_PRI1       0x0010
+#define CYGARC_REG_IPRC_HUDI_MASK       0x000F
+#define CYGARC_REG_IPRC_HUDI_PRI1       0x0001
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_mmu.h
@@ -0,0 +1,52 @@
+//=============================================================================
+//
+//      mod_regs_mmu.h
+//
+//      MMU Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// MMU control registers
+#define CYGARC_REG_MMUCR                0xFF000010
+
+#define CYGARC_REG_MMUCR_LRUI_MASK      0xFC000000
+#define CYGARC_REG_MMUCR_URB_MASK       0x00FC0000
+#define CYGARC_REG_MMUCR_URC_MASK       0x0000FC00
+#define CYGARC_REG_MMUCR_SQMD           0x00000200
+#define CYGARC_REG_MMUCR_SV             0x00000100
+#define CYGARC_REG_MMUCR_TI             0x00000004
+#define CYGARC_REG_MMUCR_AT             0x00000001
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_pfc.h
@@ -0,0 +1,100 @@
+//=============================================================================
+//
+//      mod_regs_pfc.h
+//
+//      PFC (pin function controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#define CYGARC_REG_PACR                 0xa4000100 // port A control
+#define CYGARC_REG_PBCR                 0xa4000102 // port B control
+#define CYGARC_REG_PCCR                 0xa4000104 // port C control
+#define CYGARC_REG_PDCR                 0xa4000106 // port D control
+#define CYGARC_REG_PECR                 0xa4000108 // port E control
+#define CYGARC_REG_PFCR                 0xa400010a // port F control
+#define CYGARC_REG_PGCR                 0xa400010c // port G control
+#define CYGARC_REG_PHCR                 0xa400010e // port H control
+#define CYGARC_REG_PJCR                 0xa4000110 // port J control
+#define CYGARC_REG_PKCR                 0xa4000112 // port K control
+#define CYGARC_REG_PLCR                 0xa4000114 // port L control
+#define CYGARC_REG_SCPCR                0xa4000116 // SC port control
+
+#define CYGARC_REG_PADR                 0xa4000120 // port A data
+#define CYGARC_REG_PBDR                 0xa4000122 // port B data
+#define CYGARC_REG_PCDR                 0xa4000124 // port C data
+#define CYGARC_REG_PDDR                 0xa4000126 // port D data
+#define CYGARC_REG_PEDR                 0xa4000128 // port E data
+#define CYGARC_REG_PFDR                 0xa400012a // port F data
+#define CYGARC_REG_PGDR                 0xa400012c // port G data
+#define CYGARC_REG_PHDR                 0xa400012e // port H data
+#define CYGARC_REG_PJDR                 0xa4000130 // port J data
+#define CYGARC_REG_PKDR                 0xa4000132 // port K data
+#define CYGARC_REG_PLDR                 0xa4000134 // port L data
+#define CYGARC_REG_SCPDR                0xa4000136 // SC port data
+
+
+// Port C
+#define CYGARC_REG_PCCR_PC7_MASK        0xc000
+#define CYGARC_REG_PCCR_PC7_shift       14
+#define CYGARC_REG_PCCR_PC6_MASK        0x3000
+#define CYGARC_REG_PCCR_PC6_shift       12
+#define CYGARC_REG_PCCR_PC5_MASK        0x0c00
+#define CYGARC_REG_PCCR_PC5_shift       10
+#define CYGARC_REG_PCCR_PC4_MASK        0x0300
+#define CYGARC_REG_PCCR_PC4_shift       8
+#define CYGARC_REG_PCCR_PC3_MASK        0x00c0
+#define CYGARC_REG_PCCR_PC3_shift       6
+#define CYGARC_REG_PCCR_PC2_MASK        0x0030
+#define CYGARC_REG_PCCR_PC2_shift       4
+#define CYGARC_REG_PCCR_PC1_MASK        0x000c
+#define CYGARC_REG_PCCR_PC1_shift       2
+#define CYGARC_REG_PCCR_PC0_MASK        0x0003
+#define CYGARC_REG_PCCR_PC0_shift       0
+
+#define CYGARC_REG_PCCR_MD_OTHER        0x0
+#define CYGARC_REG_PCCR_MD_OUT          0x1
+#define CYGARC_REG_PCCR_MD_IN_ON        0x2
+#define CYGARC_REG_PCCR_MD_IN_OFF       0x3
+
+#define CYGARC_REG_PCDR_PC7DT           0x80
+#define CYGARC_REG_PCDR_PC6DT           0x40
+#define CYGARC_REG_PCDR_PC5DT           0x20
+#define CYGARC_REG_PCDR_PC4DT           0x10
+#define CYGARC_REG_PCDR_PC3DT           0x08
+#define CYGARC_REG_PCDR_PC2DT           0x04
+#define CYGARC_REG_PCDR_PC1DT           0x02
+#define CYGARC_REG_PCDR_PC0DT           0x01
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_rtc.h
@@ -0,0 +1,77 @@
+//=============================================================================
+//
+//      mod_regs_rtc.h
+//
+//      RTC (real time clock) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// RealTime Clock
+
+#define CYGARC_REG_RC64CNT              0xfffffec0
+#define CYGARC_REG_RSECCNT              0xfffffec2
+#define CYGARC_REG_RMINCNT              0xfffffec4
+#define CYGARC_REG_RHRCNT               0xfffffec6
+#define CYGARC_REG_RWKCNT               0xfffffec8
+#define CYGARC_REG_RDAYCNT              0xfffffeca
+#define CYGARC_REG_RMONCNT              0xfffffecc
+#define CYGARC_REG_RYRCNT               0xfffffece
+#define CYGARC_REG_RSECAR               0xfffffed0
+#define CYGARC_REG_RMINAR               0xfffffed2
+#define CYGARC_REG_RHRAR                0xfffffed4
+#define CYGARC_REG_RWKAR                0xfffffed6
+#define CYGARC_REG_RDAYAR               0xfffffed8
+#define CYGARC_REG_RMONAR               0xfffffeda
+#define CYGARC_REG_RCR1                 0xfffffedc
+#define CYGARC_REG_RCR2                 0xfffffede
+
+
+#define CYGARC_REG_RCR1_CF              0x80 // carry flag
+#define CYGARC_REG_RCR1_CIE             0x10 // carry interrupt enable
+#define CYGARC_REG_RCR1_AIE             0x08 // alarm interrupt enable
+#define CYGARC_REG_RCR1_AF              0x01 // alarm flag
+
+#define CYGARC_REG_RCR2_PEF             0x80 // periodic interrupt flag
+#define CYGARC_REG_RCR2_PES2            0x40 // periodic interrupt setting
+#define CYGARC_REG_RCR2_PES1            0x20
+#define CYGARC_REG_RCR2_PES0            0x10
+#define CYGARC_REG_RCR2_RTCEN           0x08 // RTC enable
+#define CYGARC_REG_RCR2_ADJ             0x04 // second adjustment
+#define CYGARC_REG_RCR2_RESET           0x02 // reset
+#define CYGARC_REG_RCR2_START           0x01 // start
+
+
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_ser.h
@@ -0,0 +1,277 @@
+//=============================================================================
+//
+//      mod_regs_ser.h
+//
+//      SCI, SCIF, and IRDA (serial) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+// Note:        All three serial module definitions kept in the same file
+//              since they share some of the information.
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//++++++ Module SCI ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+//--------------------------------------------------------------------------
+// Serial registers. All 8 bit registers.
+#define CYGARC_REG_SCSMR1               0xFFE00000 // serial mode register
+#define CYGARC_REG_SCBRR1               0xFFE00004 // bit rate register
+#define CYGARC_REG_SCSCR1               0xFFE00008 // serial control register
+#define CYGARC_REG_SCTDR1               0xFFE0000C // transmit data register
+#define CYGARC_REG_SCSSR1               0xFFE00010 // serial status register
+#define CYGARC_REG_SCRDR1               0xFFE00014 // receive data register
+#define CYGARC_REG_SCRCMR1              0xFFE00018 
+#define CYGARC_REG_SCSPTR1              0xFFE0001C // serial port register
+
+// Serial Mode Register
+#define CYGARC_REG_SCSMR1_CA            0x80 // communication mode
+#define CYGARC_REG_SCSMR1_CHR           0x40 // character length (7 if set)
+#define CYGARC_REG_SCSMR1_PE            0x20 // parity enable
+#define CYGARC_REG_SCSMR1_OE            0x10 // parity mode
+#define CYGARC_REG_SCSMR1_STOP          0x08 // stop bit length
+#define CYGARC_REG_SCSMR1_MP            0x04 // multiprocessor mode
+#define CYGARC_REG_SCSMR1_CKS1          0x02 // clock select 1
+#define CYGARC_REG_SCSMR1_CKS0          0x01 // clock select 0
+#define CYGARC_REG_SCSMR1_CKSx_MASK     0x03 // mask
+
+// Serial Control Register
+#define CYGARC_REG_SCSCR1_TIE           0x80 // transmit interrupt enable
+#define CYGARC_REG_SCSCR1_RIE           0x40 // receive interrupt enable
+#define CYGARC_REG_SCSCR1_TE            0x20 // transmit enable
+#define CYGARC_REG_SCSCR1_RE            0x10 // receive enable
+#define CYGARC_REG_SCSCR1_MPIE          0x08 // multiprocessor interrupt enable
+#define CYGARC_REG_SCSCR1_TEIE          0x04 // transmit-end interrupt enable
+#define CYGARC_REG_SCSCR1_CKE1          0x02 // clock enable 1
+#define CYGARC_REG_SCSCR1_CKE0          0x01 // clock enable 0
+
+// Serial Status Register
+#define CYGARC_REG_SCSSR1_TDRE          0x80 // transmit data register empty
+#define CYGARC_REG_SCSSR1_RDRF          0x40 // receive data register full
+#define CYGARC_REG_SCSSR1_ORER          0x20 // overrun error
+#define CYGARC_REG_SCSSR1_FER           0x10 // framing error
+#define CYGARC_REG_SCSSR1_PER           0x08 // parity error
+#define CYGARC_REG_SCSSR1_TEND          0x04 // transmit end
+#define CYGARC_REG_SCSSR1_MPB           0x02 // multiprocessor bit
+#define CYGARC_REG_SCSSR1_MPBT          0x01 // multiprocessor bit transfer
+
+// When clearing the status register, always write the value:
+// CYGARC_REG_SCSSR_CLEARMASK & ~bit
+// to prevent other bits than the one of interest to be cleared.
+#define CYGARC_REG_SCSSR1_CLEARMASK     0xf8
+
+
+// Baud rate values calculation, depending on peripheral clock (Pf)
+// n is CKS setting (0-3)
+// N = (Pf/(64*2^(2n-1)*B))-1
+// With CYGARC_SCBRR_CKSx providing the values 1, 4, 16, 64 we get
+//       N = (Pf/(32*_CKS*B))-1
+//
+// The CYGARC_SCBRR_OPTIMAL_CKS macro should compute the minimal CKS
+// setting for the given baud rate and peripheral clock.
+//
+// The error of the CKS+count value can be computed by:
+//  E(%) = ((Pf/((N+1)*B*(64^(n-1)))-1)*100 
+//
+#define CYGARC_SCBRR_PRESCALE(_b_) \
+((((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/1/(_b_))-1)<256) ? 1 : \
+ (((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/4/(_b_))-1)<256) ? 4 : \
+ (((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/16/(_b_))-1)<256) ? 16 : 64)
+
+// These two macros provide the static values we need to stuff into the
+// registers.
+#define CYGARC_SCBRR_CKSx(_b_) \
+    ((1 == CYGARC_SCBRR_PRESCALE(_b_)) ? 0 : \
+     (4 == CYGARC_SCBRR_PRESCALE(_b_)) ? 1 : \
+     (16 == CYGARC_SCBRR_PRESCALE(_b_)) ? 2 : 3)
+#define CYGARC_SCBRR_N(_b_)     \
+    (((_b_) < 4800) ? 0 :       \
+      ((_b_) > 115200) ? 0 :    \
+       ((CYGHWR_HAL_SH_ONCHIP_PERIPHERAL_SPEED/32/CYGARC_SCBRR_PRESCALE(_b_)/(_b_))-1))
+
+
+//++++++ Module IRDA +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#ifdef CYGARC_SH_MOD_IRDA
+
+//--------------------------------------------------------------------------
+// IrDA (infrared data association). Can also act as regular serial w FIFO
+
+#define CYGARC_REG_SCSMR1                0xFFE00000 // serial mode register
+#define CYGARC_REG_SCBRR1                0xFFE00004 // bit rate register
+#define CYGARC_REG_SCSCR1                0xFFE00008 // serial control register
+#define CYGARC_REG_SCTDR1                0xFFE0000C // transmit data register
+#define CYGARC_REG_SCSSR1                0xFFE00010 // serial status register
+#define CYGARC_REG_SCRDR1                0xFFE00014 // receive data register
+#define CYGARC_REG_SCRCMR1               0xFFE00018 
+#define CYGARC_REG_SCSPTR1               0xFFE0001C // serial port register
+
+// Serial Mode Register
+#define CYGARC_REG_SCSMR1_IRMOD          0x80 // IrDA Mode
+#define CYGARC_REG_SCSMR1_ICK_MASK       0x78 // IR pulse width
+#define CYGARC_REG_SCSMR1_PSEL           0x04 // IR pulse selector(?)
+#define CYGARC_REG_SCSMR1_CKS1           0x02 // clock select 1
+#define CYGARC_REG_SCSMR1_CKS0           0x01 // clock select 0
+#define CYGARC_REG_SCSMR1_CKSx_MASK      0x03 // mask
+
+// Serial Control Register
+#define CYGARC_REG_SCSCR1_TIE            0x80 // transmit interrupt enable
+#define CYGARC_REG_SCSCR1_RIE            0x40 // receive interrupt enable
+#define CYGARC_REG_SCSCR1_TE             0x20 // transmit enable
+#define CYGARC_REG_SCSCR1_RE             0x10 // receive enable
+#define CYGARC_REG_SCSCR1_CKE1           0x02 // clock enable 1
+#define CYGARC_REG_SCSCR1_CKE0           0x01 // clock enable 0
+
+// Serial Status Register
+#define CYGARC_REG_SCSSR1_PER_MASK       0xf000 // number of parity errors
+#define CYGARC_REG_SCSSR1_PER_shift      12
+#define CYGARC_REG_SCSSR1_FER_MASK       0x0f00 // number of framing errors
+#define CYGARC_REG_SCSSR1_FER_shift      8
+#define CYGARC_REG_SCSSR1_ER             0x0080 // receive error
+#define CYGARC_REG_SCSSR1_TEND           0x0040 // transmit end
+#define CYGARC_REG_SCSSR1_TDFE           0x0020 // transmit fifo data empty
+#define CYGARC_REG_SCSSR1_BRK            0x0010 // break detection
+#define CYGARC_REG_SCSSR1_FER            0x0008 // framing error
+#define CYGARC_REG_SCSSR1_PER            0x0004 // parity error
+#define CYGARC_REG_SCSSR1_RDF            0x0002 // receive fifo data full
+#define CYGARC_REG_SCSSR1_DR             0x0001 // receive data ready
+
+// When clearing the status register, always write the value:
+// CYGARC_REG_SCSSR2_CLEARMASK & ~bit
+// to prevent other bits than the one of interest to be cleared.
+#define CYGARC_REG_SCSSR1_CLEARMASK      0xf3
+
+// Serial FIFO Control Register
+#define CYGARC_REG_SCFCR1_RTRG_MASK      0xc0   // receive fifo data trigger
+#define CYGARC_REG_SCFCR1_RTRG_1         0x00   // trigger on 1 char 
+#define CYGARC_REG_SCFCR1_RTRG_4         0x40   // trigger on 4 chars
+#define CYGARC_REG_SCFCR1_RTRG_8         0x80   // trigger on 8 chars
+#define CYGARC_REG_SCFCR1_RTRG_14        0xc0   // trigger on 14 chars 
+
+#define CYGARC_REG_SCFCR1_TTRG_MASK      0x30   // transmit fifo data trigger
+#define CYGARC_REG_SCFCR1_TTRG_8         0x00   // trigger on 8 chars 
+#define CYGARC_REG_SCFCR1_TTRG_4         0x10   // trigger on 4 chars
+#define CYGARC_REG_SCFCR1_TTRG_2         0x20   // trigger on 2 chars
+#define CYGARC_REG_SCFCR1_TTRG_1         0x30   // trigger on 1 char
+
+#define CYGARC_REG_SCFCR1_MCE            0x08   // modem control enable
+#define CYGARC_REG_SCFCR1_TFRST          0x04   // transmit fifo reset
+#define CYGARC_REG_SCFCR1_RFRST          0x02   // receive fifo reset
+#define CYGARC_REG_SCFCR1_LOOP           0x01   // loop back test
+
+
+// Serial FIFO Data Count Set Register
+#define CYGARC_REG_SCFDR1_RCOUNT_MASK    0x001f // number of chars in r fifo
+#define CYGARC_REG_SCFDR1_RCOUNT_shift   0
+#define CYGARC_REG_SCFDR1_TCOUNT_MASK    0x1f00 // number of chars in t fifo
+#define CYGARC_REG_SCFDR1_TCOUNT_shift   8
+
+#endif // CYGARC_SH_MOD_IRDA
+
+//++++++ Module SCIF +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#ifdef CYGARC_SH_MOD_SCIF
+
+//--------------------------------------------------------------------------
+// Serial w FIFO registers
+
+#define CYGARC_REG_SCSMR2               0xffe80000 // Serial mode
+#define CYGARC_REG_SCBRR2               0xffe80004 // Bit rate
+#define CYGARC_REG_SCSCR2               0xffe80008 // Serial control
+#define CYGARC_REG_SCFTDR2              0xffe8000c // Transmit FIFO data
+#define CYGARC_REG_SCFSR2               0xffe80010 // Serial status
+#define CYGARC_REG_SCFRDR2              0xffe80014 // Receive data FIFO
+#define CYGARC_REG_SCFCR2               0xffe80018 // FIFO control register
+#define CYGARC_REG_SCFDR2               0xffe8001c // FIFO data count set
+#define CYGARC_REG_SCSPTR2              0xffe80020 // serial port register
+#define CYGARC_REG_SCLSR2               0xffe80024 // line status register
+
+// Serial Mode Register
+#define CYGARC_REG_SCSMR2_CHR            0x40 // character length (7 if set)
+#define CYGARC_REG_SCSMR2_PE             0x20 // parity enable
+#define CYGARC_REG_SCSMR2_OE             0x10 // parity mode
+#define CYGARC_REG_SCSMR2_STOP           0x08 // stop bit length
+#define CYGARC_REG_SCSMR2_CKS1           0x02 // clock select 1
+#define CYGARC_REG_SCSMR2_CKS0           0x01 // clock select 0
+#define CYGARC_REG_SCSMR2_CKSx_MASK      0x03 // mask
+
+// Serial Control Register
+#define CYGARC_REG_SCSCR2_TIE            0x80 // transmit interrupt enable
+#define CYGARC_REG_SCSCR2_RIE            0x40 // receive interrupt enable
+#define CYGARC_REG_SCSCR2_TE             0x20 // transmit enable
+#define CYGARC_REG_SCSCR2_RE             0x10 // receive enable
+#define CYGARC_REG_SCSCR2_CKE1           0x02 // clock enable 1
+#define CYGARC_REG_SCSCR2_CKE0           0x01 // clock enable 0
+
+// Serial Status Register
+#define CYGARC_REG_SCSSR2_PER_MASK       0xf000 // number of parity errors
+#define CYGARC_REG_SCSSR2_PER_shift      12
+#define CYGARC_REG_SCSSR2_FER_MASK       0x0f00 // number of framing errors
+#define CYGARC_REG_SCSSR2_FER_shift      8
+#define CYGARC_REG_SCSSR2_ER             0x0080 // receive error
+#define CYGARC_REG_SCSSR2_TEND           0x0040 // transmit end
+#define CYGARC_REG_SCSSR2_TDFE           0x0020 // transmit fifo data empty
+#define CYGARC_REG_SCSSR2_BRK            0x0010 // break detection
+#define CYGARC_REG_SCSSR2_FER            0x0008 // framing error
+#define CYGARC_REG_SCSSR2_PER            0x0004 // parity error
+#define CYGARC_REG_SCSSR2_RDF            0x0002 // receive fifo data full
+#define CYGARC_REG_SCSSR2_DR             0x0001 // receive data ready
+
+// When clearing the status register, always write the value:
+// CYGARC_REG_SCSSR2_CLEARMASK & ~bit
+// to prevent other bits than the one of interest to be cleared.
+#define CYGARC_REG_SCSSR2_CLEARMASK      0xf3
+
+// Serial FIFO Control Register
+#define CYGARC_REG_SCFCR2_RTRG_MASK      0xc0   // receive fifo data trigger
+#define CYGARC_REG_SCFCR2_RTRG_1         0x00   // trigger on 1 char 
+#define CYGARC_REG_SCFCR2_RTRG_4         0x40   // trigger on 4 chars
+#define CYGARC_REG_SCFCR2_RTRG_8         0x80   // trigger on 8 chars
+#define CYGARC_REG_SCFCR2_RTRG_14        0xc0   // trigger on 14 chars 
+
+#define CYGARC_REG_SCFCR2_TTRG_MASK      0x30   // transmit fifo data trigger
+#define CYGARC_REG_SCFCR2_TTRG_8         0x00   // trigger on 8 chars 
+#define CYGARC_REG_SCFCR2_TTRG_4         0x10   // trigger on 4 chars
+#define CYGARC_REG_SCFCR2_TTRG_2         0x20   // trigger on 2 chars
+#define CYGARC_REG_SCFCR2_TTRG_1         0x30   // trigger on 1 char
+
+#define CYGARC_REG_SCFCR2_MCE            0x08   // modem control enable
+#define CYGARC_REG_SCFCR2_TFRST          0x04   // transmit fifo reset
+#define CYGARC_REG_SCFCR2_RFRST          0x02   // receive fifo reset
+#define CYGARC_REG_SCFCR2_LOOP           0x01   // loop back test
+
+
+// Serial FIFO Data Count Set Register
+#define CYGARC_REG_SCFDR2_RCOUNT_MASK    0x001f // number of chars in r fifo
+#define CYGARC_REG_SCFDR2_RCOUNT_shift   0
+#define CYGARC_REG_SCFDR2_TCOUNT_MASK    0x1f00 // number of chars in t fifo
+#define CYGARC_REG_SCFDR2_TCOUNT_shift   8
+
+#endif // CYGARC_SH_MOD_SCIF
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_tmu.h
@@ -0,0 +1,79 @@
+//=============================================================================
+//
+//      mod_regs_tmu.h
+//
+//      TMU (timer unit) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// TMU registers
+#define CYGARC_REG_TOCR                 0xFFD80000 //  8 bit
+#define CYGARC_REG_TSTR                 0xFFD80004 //  8 bit
+#define CYGARC_REG_TCOR0                0xFFD80008 // 32 bit
+#define CYGARC_REG_TCNT0                0xFFD8000C // 32 bit
+#define CYGARC_REG_TCR0                 0xFFD80010 // 16 bit
+#define CYGARC_REG_TCOR1                0xFFD80014 // 32 bit
+#define CYGARC_REG_TCNT1                0xFFD80018 // 32 bit
+#define CYGARC_REG_TCR1                 0xFFD8001C // 16 bit
+#define CYGARC_REG_TCOR2                0xFFD80020 // 32 bit
+#define CYGARC_REG_TCNT2                0xFFD80024 // 32 bit
+#define CYGARC_REG_TCR2                 0xFFD80028 // 16 bit
+#define CYGARC_REG_TCPR2                0xFFD8002C // 32 bit
+
+// TSTR
+#define CYGARC_REG_TSTR_STR0            0x0001
+#define CYGARC_REG_TSTR_STR1            0x0002
+#define CYGARC_REG_TSTR_STR2            0x0004
+
+// TCR0/1/2
+#define CYGARC_REG_TCR_TPSC0            0x0001
+#define CYGARC_REG_TCR_TPSC1            0x0002
+#define CYGARC_REG_TCR_TPSC2            0x0004
+#define CYGARC_REG_TCR_CKEG0            0x0008
+#define CYGARC_REG_TCR_CKEG1            0x0010
+#define CYGARC_REG_TCR_UNIE             0x0020
+#define CYGARC_REG_TCR_UNF              0x0100
+
+#define CYGARC_REG_TCR_TPSC_4           (0)
+#define CYGARC_REG_TCR_TPSC_16          (CYGARC_REG_TCR_TPSC0)
+#define CYGARC_REG_TCR_TPSC_64          (CYGARC_REG_TCR_TPSC1)
+#define CYGARC_REG_TCR_TPSC_256         (CYGARC_REG_TCR_TPSC0|CYGARC_REG_TCR_TPSC1)
+
+// TCR2 additional bits
+#define CYGARC_REG_TCR_ICPE0            0x0040
+#define CYGARC_REG_TCR_ICPE1            0x0080
+#define CYGARC_REG_TCR_ICPF             0x0200
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/mod_regs_ubc.h
@@ -0,0 +1,75 @@
+//=============================================================================
+//
+//      mod_regs_ubc.h
+//
+//      UBC (user break controller) Module register definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:jskov
+// Date:        2000-10-30
+//              
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+//--------------------------------------------------------------------------
+// User Break Control
+#define CYGARC_REG_BARA                 0xFF200000 // 32 bit
+#define CYGARC_REG_BAMRA                0xFF200004 // 8 bit
+#define CYGARC_REG_BBRA                 0xFF200008 // 16 bit
+
+#define CYGARC_REG_BARB                 0xFF20000C // 32 bit
+#define CYGARC_REG_BAMRB                0xFF200010 // 8 bit
+
+#define CYGARC_REG_BBRB                 0xFF200014 // 16 bit
+#define CYGARC_REG_BDRB                 0xFF200018 // 32 bit
+#define CYGARC_REG_BDMRB                0xFF20001C // 32 bit
+
+#define CYGARC_REG_BRCR                 0xFF200020 // 16 bit
+
+
+#define CYGARC_REG_BRCR_CMFA            0x8000 // condition match flag A
+#define CYGARC_REG_BRCR_CMFB            0x4000 // condition match flag B
+#define CYGARC_REG_BRCR_PCBA            0x0400 // post execute channel A
+#define CYGARC_REG_BRCR_DBEB            0x0080 // data break enable B
+#define CYGARC_REG_BRCR_PCBB            0x0040 // post execute channel B
+#define CYGARC_REG_BRCR_SEQ             0x0008 // sequence condition select
+#define CYGARC_REG_BRCR_UBDE            0x0001 // User Break Debug Enable
+
+
+#define CYGARC_REG_BBRA_DFETCH          0x0020 // Break on DFETCH
+#define CYGARC_REG_BBRA_IFETCH          0x0010 // Break on IFETCH
+#define CYGARC_REG_BBRA_WRITE           0x0008 // Break on WRITE
+#define CYGARC_REG_BBRA_READ            0x0004 // Break on READ
+#define CYGARC_REG_BBRA_SIZE_QUAD       0x0040 // Break on quad word access
+#define CYGARC_REG_BBRA_SIZE_LONG       0x0003 // Break on long word access
+#define CYGARC_REG_BBRA_SIZE_WORD       0x0002 // Break on word access
+#define CYGARC_REG_BBRA_SIZE_BYTE       0x0001 // Break on byte access
+#define CYGARC_REG_BBRA_SIZE_ANY        0x0000 // Break on any size
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/sh4_scif.h
@@ -0,0 +1,86 @@
+//=============================================================================
+//
+//      sh4_scif.h
+//
+//      Simple driver for the sh4 Serial Communication Interface with FIFO
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:Haruki Kashiwaya
+// Date:        2000-08-09
+// Description: Simple driver for the SH Serial Communication Interface
+//              The driver can be used for the SCIF modules.
+//              Clients of this file can configure the behavior with:
+//              CYGNUM_SCIF_PORTS: number of SCI ports
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGNUM_HAL_SH_SH4_SCIF_PORTS
+
+//--------------------------------------------------------------------------
+// SCIF register offsets
+#define _REG_SCSMR  0x00
+#define _REG_SCBRR  0x04
+#define _REG_SCSCR  0x08
+#define _REG_SCFTDR 0x0c
+#define _REG_SCFSR  0x10
+#define _REG_SCFRDR 0x14
+#define _REG_SCFCR  0x18
+#define _REG_SCFDR  0x1c
+#define _REG_SCSPTR 0x20
+#define _REG_SCLSR  0x24
+
+//--------------------------------------------------------------------------
+
+typedef struct {
+    cyg_uint8* base;
+    cyg_int32 msec_timeout;
+    int isr_vector;
+} channel_data_t;
+
+//--------------------------------------------------------------------------
+
+#if !defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG)
+// This one should only be used by old-stub compatibility code!
+externC void cyg_hal_plf_scif_init_channel(const channel_data_t* chan);
+#endif
+
+externC cyg_uint8 cyg_hal_plf_scif_getc(void* __ch_data);
+externC void cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c);
+void cyg_hal_plf_scif_init(int scif_index, int comm_index, 
+                           int rcv_vect, cyg_uint8* base);
+
+
+#endif // CYGNUM_HAL_SH_SH4_SCIF_PORTS
+//-----------------------------------------------------------------------------
+// end of sh4_scif.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/var_cache.h
@@ -0,0 +1,234 @@
+#ifndef CYGONCE_VAR_CACHE_H
+#define CYGONCE_VAR_CACHE_H
+//=============================================================================
+//
+//      var_cache.h
+//
+//      Variant HAL cache control API
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   nickg
+// Contributors:nickg, jskov
+// Date:        2000-04-02
+// Purpose:     Variant cache control API
+// Description: The macros defined here provide the HAL APIs for handling
+//              cache control operations on the SH variant CPUs.
+// Usage:       Is included via the architecture cache header:
+//              #include <cyg/hal/hal_cache.h>
+//              ...
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/sh_regs.h>
+
+#include <cyg/hal/plf_cache.h>
+
+//=============================================================================
+
+#ifndef HAL_DCACHE_DEFINED
+
+#define HAL_DCACHE_SIZE                 CYGARC_SH_MOD_CAC_D_SIZE
+#define HAL_DCACHE_LINE_SIZE            CYGARC_SH_MOD_CAC_D_LINE_SIZE
+#define HAL_DCACHE_WAYS                 CYGARC_SH_MOD_CAC_D_WAYS
+#define HAL_DCACHE_SETS                 (HAL_DCACHE_SIZE/(HAL_DCACHE_LINE_SIZE*HAL_DCACHE_WAYS))
+
+// Cache addressing information
+#define CYGARC_REG_DCACHE_ADDRESS_BASE   CYGARC_SH_MOD_DCAC_ADDRESS_BASE
+#define CYGARC_REG_DCACHE_ADDRESS_TOP    CYGARC_SH_MOD_DCAC_ADDRESS_TOP
+#define CYGARC_REG_DCACHE_ADDRESS_STEP   CYGARC_SH_MOD_DCAC_ADDRESS_STEP
+#define CYGARC_REG_DCACHE_ADDRESS_FLUSH  CYGARC_SH_MOD_DCAC_ADDRESS_FLUSH
+
+#define HAL_DCACHE_DEFINED
+#endif
+
+#ifndef HAL_ICACHE_DEFINED
+
+#define HAL_ICACHE_SIZE                 CYGARC_SH_MOD_CAC_I_SIZE
+#define HAL_ICACHE_LINE_SIZE            CYGARC_SH_MOD_CAC_I_LINE_SIZE
+#define HAL_ICACHE_WAYS                 CYGARC_SH_MOD_CAC_I_WAYS
+#define HAL_ICACHE_SETS                 (HAL_ICACHE_SIZE/(HAL_ICACHE_LINE_SIZE*HAL_ICACHE_WAYS))
+
+// Cache addressing information
+#define CYGARC_REG_ICACHE_ADDRESS_BASE   CYGARC_SH_MOD_ICAC_ADDRESS_BASE
+#define CYGARC_REG_ICACHE_ADDRESS_TOP    CYGARC_SH_MOD_ICAC_ADDRESS_TOP
+#define CYGARC_REG_ICACHE_ADDRESS_STEP   CYGARC_SH_MOD_ICAC_ADDRESS_STEP
+#define CYGARC_REG_ICACHE_ADDRESS_FLUSH  CYGARC_SH_MOD_ICAC_ADDRESS_FLUSH
+
+#define HAL_ICACHE_DEFINED
+#endif
+
+
+//-----------------------------------------------------------------------------
+// Global control of cache
+
+// This is all handled in assembly (see variant.S) due to a requirement about
+// not fiddling the cache from cachable memory.
+
+externC void cyg_hal_dcache_enable(void);
+externC void cyg_hal_dcache_disable(void);
+externC void cyg_hal_dcache_invalidate_all(void);
+externC void cyg_hal_dcache_sync(void);
+externC void cyg_hal_dcache_sync_region(cyg_haladdress base, 
+                                        cyg_haladdrword len);
+externC void cyg_hal_dcache_write_mode(int mode);
+
+// Enable the cache
+#define HAL_DCACHE_ENABLE() cyg_hal_dcache_enable()
+
+// Disable the cache
+#define HAL_DCACHE_DISABLE() cyg_hal_dcache_disable()
+
+// Invalidate the entire cache
+#define HAL_DCACHE_INVALIDATE_ALL() cyg_hal_dcache_invalidate_all()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_DCACHE_SYNC() cyg_hal_dcache_sync()
+
+// Query the state of the cache (does not affect the caching)
+#define HAL_DCACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    HAL_READ_UINT32(CYGARC_REG_CCR, (_state_)); \
+    (_state_) &= ~CYGARC_REG_CCR_OCE;           \
+    CYG_MACRO_END
+
+// Set the cache refill burst size
+//#define HAL_ICACHE_BURST_SIZE(_size_)
+
+// Set the cache write mode
+#define HAL_ICACHE_WRITE_MODE( _mode_ )         \
+    CYG_MACRO_START                             \
+    cyg_uint32 _m_;                             \
+    if (HAL_DCACHE_WRITETHRU_MODE == _mode_)    \
+      _m_ = CYGARC_REG_CCR_WT;                  \
+    else                                        \
+      _m_ = CYGARC_REG_CCR_CB;                  \
+    cyg_hal_cache_write_mode(_m_);              \
+    CYG_MACRO_END
+
+#define HAL_DCACHE_WRITETHRU_MODE       0
+#define HAL_DCACHE_WRITEBACK_MODE       1
+
+// This macro allows the client to specify separate modes for the two
+// regions.
+#define HAL_DCACHE_WRITE_MODE_SH( _mode_ ) cyg_hal_dcache_write_mode(_mode_)
+
+// Load the contents of the given address range into the cache
+// and then lock the cache so that it stays there.
+//#define HAL_DCACHE_LOCK(_base_, _size_)
+        
+// Undo a previous lock operation
+//#define HAL_DCACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+//#define HAL_DCACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Cache line control
+
+// Allocate cache lines for the given address range without reading its
+// contents from memory.
+//#define HAL_DCACHE_ALLOCATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory and invalidate the cache entries
+// for the given address range.
+#define HAL_DCACHE_FLUSH( _base_ , _size_ ) \
+ cyg_hal_dcache_sync_region((cyg_haladdress)_base_, (cyg_haladdrword)_size_)
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_DCACHE_INVALIDATE( _base_ , _size_ )
+
+// Write dirty cache lines to memory for the given address range.
+//#define HAL_DCACHE_STORE( _base_ , _size_ )
+
+
+// Preread the given range into the cache with the intention of reading
+// from it later.
+//#define HAL_DCACHE_READ_HINT( _base_ , _size_ )
+
+// Preread the given range into the cache with the intention of writing
+// to it later.
+//#define HAL_DCACHE_WRITE_HINT( _base_ , _size_ )
+
+// Allocate and zero the cache lines associated with the given range.
+//#define HAL_DCACHE_ZERO( _base_ , _size_ )
+
+
+//-----------------------------------------------------------------------------
+// Global control of Instruction cache
+
+externC void cyg_hal_icache_enable(void);
+externC void cyg_hal_icache_disable(void);
+externC void cyg_hal_icache_invalidate_all(void);
+
+// Enable the cache
+#define HAL_ICACHE_ENABLE() cyg_hal_dcache_enable()
+
+// Disable the cache
+#define HAL_ICACHE_DISABLE() cyg_hal_dcache_disable()
+
+// Invalidate the entire cache
+#define HAL_ICACHE_INVALIDATE_ALL() cyg_hal_icache_invalidate_all()
+
+// Synchronize the contents of the cache with memory.
+#define HAL_ICACHE_SYNC() HAL_ICACHE_INVALIDATE_ALL()
+
+// Query the state of the cache (does not affect the caching)
+#define HAL_ICACHE_IS_ENABLED(_state_)          \
+    CYG_MACRO_START                             \
+    HAL_READ_UINT32(CYGARC_REG_CCR, (_state_)); \
+    (_state_) &= ~CYGARC_REG_CCR_ICE;           \
+    CYG_MACRO_END
+
+// Set the instruction cache refill burst size
+//#define HAL_ICACHE_BURST_SIZE(_size_)
+
+// Load the contents of the given address range into the instruction cache
+// and then lock the cache so that it stays there.
+
+//#define HAL_ICACHE_LOCK(_base_, _size_)
+
+// Undo a previous lock operation
+//#define HAL_ICACHE_UNLOCK(_base_, _size_)
+
+// Unlock entire cache
+//#define HAL_ICACHE_UNLOCK_ALL()
+
+//-----------------------------------------------------------------------------
+// Instruction cache line control
+
+// Invalidate cache lines in the given range without writing to memory.
+//#define HAL_ICACHE_INVALIDATE( _base_ , _size_ )
+
+//-----------------------------------------------------------------------------
+#endif // ifndef CYGONCE_VAR_CACHE_H
+// End of var_cache.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/var_intr.h
@@ -0,0 +1,113 @@
+#ifndef CYGONCE_HAL_VAR_INTR_H
+#define CYGONCE_HAL_VAR_INTR_H
+
+//==========================================================================
+//
+//      var_intr.h
+//
+//      SH4 Interrupt and clock support
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov,
+// Date:         1999-04-24
+// Purpose:      Define Interrupt support
+// Description:  The macros defined here provide the HAL APIs for handling
+//               interrupts and the clock.
+//              
+// Usage:
+//               #include <cyg/hal/hal_intr.h>
+//               ...
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+#include CYGBLD_HAL_CPU_MODULES_H       // INTC module selection
+
+// More include statements below. First part of this file must be
+// usable for both assembly and C files, so only use defines here.
+#include <cyg/hal/plf_intr.h>
+
+//--------------------------------------------------------------------------
+// Additional SH4 exception vectors. 
+// These are identified with event values 0x800 and 0x820, so we need to
+// extend the decode macros accordingly. Performance wise it's not an
+// issue - these are exceptions, not interrupts. No critical fast path.
+#define CYGNUM_HAL_VECTOR_FPU_EXCEPTION          9 // FPU exception
+#define CYGNUM_HAL_VECTOR_TLB_MUTI_HIT          10 // mutible TLB hit
+#define CYGNUM_HAL_VECTOR_FPU_DISABLE           17
+#define CYGNUM_HAL_VECTOR_SLOT_FPU_DISABLE      18
+
+#define CYG_VECTOR_IS_INTERRUPT(v)   \
+    ((CYGNUM_HAL_VECTOR_INSTRUCTION_BP < (v)) && ((v) < CYGNUM_HAL_VECTOR_FPU_DISABLE))
+
+#define CYGNUM_HAL_VSR_MAX                   CYGNUM_HAL_VECTOR_SLOT_FPU_DISABLE
+
+#define CYGNUM_HAL_VSR_EXCEPTION_COUNT       (CYGNUM_HAL_VSR_MAX-CYGNUM_HAL_VECTOR_POWERON+1)
+
+#define CYGNUM_HAL_INTERRUPT_RESERVED_5C0    32
+#define CYGNUM_HAL_INTERRUPT_RESERVED_5E0    33
+#define CYGNUM_HAL_INTERRUPT_HUDI            34
+#define CYGNUM_HAL_INTERRUPT_GPIO            35
+#define CYGNUM_HAL_INTERRUPT_DMAC_DMTE0      36
+#define CYGNUM_HAL_INTERRUPT_DMAC_DMTE1      37
+#define CYGNUM_HAL_INTERRUPT_DMAC_DMTE2      38
+#define CYGNUM_HAL_INTERRUPT_DMAC_DMTE3      39
+#define CYGNUM_HAL_INTERRUPT_DMAC_DMAE       40
+#define CYGNUM_HAL_INTERRUPT_RESERVED_6E0    41
+#define CYGNUM_HAL_INTERRUPT_SCIF_ERI        42
+#define CYGNUM_HAL_INTERRUPT_SCIF_RXI        43
+#define CYGNUM_HAL_INTERRUPT_SCIF_BRI        44
+#define CYGNUM_HAL_INTERRUPT_SCIF_TXI        45
+
+#define CYGNUM_HAL_ISR_MAX                   CYGNUM_HAL_INTERRUPT_SCIF_TXI
+
+// Exception vectors. These are the values used when passed out to an
+// external exception handler using cyg_hal_deliver_exception()
+
+// These are in addition to the exceptions defined by the architecture.
+
+#define CYGNUM_HAL_EXCEPTION_FPU_EXCEPTION          9 // fpu exception
+#define CYGNUM_HAL_EXCEPTION_TLB_MULTI_HIT         10 // TLB multi hit exception
+#define CYGNUM_HAL_EXCEPTION_FPU_DISABLE           17
+#define CYGNUM_HAL_EXCEPTION_SLOT_FPU_DISABLE      18
+
+#define CYGNUM_HAL_EXCEPTION_MIN          CYGNUM_HAL_EXCEPTION_POWERON
+#define CYGNUM_HAL_EXCEPTION_MAX          CYGNUM_HAL_EXCEPTION_SLOT_FPU_DISABLE
+
+
+// The vector used by the Real time clock
+#define CYGNUM_HAL_INTERRUPT_RTC             CYGNUM_HAL_INTERRUPT_TMU0_TUNI0
+
+//--------------------------------------------------------------------------
+#endif // ifndef CYGONCE_HAL_VAR_INTR_H
+// End of hal_intr.h
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/var_regs.h
@@ -0,0 +1,91 @@
+#ifndef CYGONCE_HAL_VAR_REGS_H
+#define CYGONCE_HAL_VAR_REGS_H
+//=============================================================================
+//
+//      var_regs.h
+//
+//      SH4 CPU definitions
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:Ryozaburo Suzuki
+// Date:        2000-04-18
+// Purpose:     Define CPU memory mapped registers etc.
+// Usage:       Included via the acrhitecture register header:
+//              #include <cyg/hal/sh_regs.h>
+// Notes:
+//   This file describes registers for on-core modules found in all
+//   the SH4 CPUs supported by the HAL. For each CPU is defined a
+//   module specification file (mod_<CPU model number>.h) which lists
+//   modules (and their version if applicable) included in that
+//   particular CPU model.  Note that the versioning is ad hoc;
+//   it doesn't reflect Hitachi internal versioning in any way.
+//              
+//####DESCRIPTIONEND####
+//
+
+// Find out which modules are supported by the chosen CPU
+#include <pkgconf/system.h>
+#include CYGBLD_HAL_CPU_MODULES_H
+
+//==========================================================================
+//                             CPU Definitions
+//==========================================================================
+
+//--------------------------------------------------------------------------
+// Status register
+#define CYGARC_REG_SR_MD                0x40000000
+#define CYGARC_REG_SR_RB                0x20000000
+#define CYGARC_REG_SR_BL                0x10000000
+#define CYGARC_REG_SR_M                 0x00000200
+#define CYGARC_REG_SR_Q                 0x00000100
+#define CYGARC_REG_SR_IMASK             0x000000f0
+#define CYGARC_REG_SR_I3                0x00000080
+#define CYGARC_REG_SR_I2                0x00000040
+#define CYGARC_REG_SR_I1                0x00000020
+#define CYGARC_REG_SR_I0                0x00000010
+#define CYGARC_REG_SR_S                 0x00000002
+#define CYGARC_REG_SR_T                 0x00000001
+#define CYGARC_REG_SR_FD                0x00008000
+
+//==========================================================================
+//                             Module Definitions
+//==========================================================================
+
+#include <cyg/hal/mod_regs_bsc.h>
+#include <cyg/hal/mod_regs_cac.h>
+#include <cyg/hal/mod_regs_cpg.h>
+#include <cyg/hal/mod_regs_intc.h>
+#include <cyg/hal/mod_regs_mmu.h>
+#include <cyg/hal/mod_regs_rtc.h>
+#include <cyg/hal/mod_regs_ser.h>
+#include <cyg/hal/mod_regs_tmu.h>
+#include <cyg/hal/mod_regs_ubc.h>
+
+#endif // CYGONCE_HAL_VAR_REGS_H
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/include/variant.inc
@@ -0,0 +1,167 @@
+#ifndef CYGONCE_HAL_VARIANT_INC
+#define CYGONCE_HAL_VARIANT_INC
+##=============================================================================
+##
+##      variant.inc
+##
+##      SH4 variant assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):   jskov
+## Contributors:jskov
+## Date:        2000-10-30
+## Purpose:     SH4 variant definitions and init code
+## Description: This file contains various definitions and macros that are
+##              useful for writing assembly code for the SH3 CPU family.
+## Usage:
+##              #include <cyg/hal/variant.inc>
+##              ...
+##              
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+#include <cyg/hal/sh_regs.h>
+        
+#===========================================================================
+# SR initialization value
+# zero all bits except:
+# MD = Processor operation mode field (privileged mode)
+# I0-3 = Mask out all interrupts but NMI.
+#
+# When saving or restoring the state of an exception or interrupt, the bit
+# CYGARC_REG_SR_RB is also set, switching the register bank. When this bit
+# is set, interrupts must be disabled.
+#
+# Note: We could also use the BL bit to prevent interrupts, but that would
+#       also prevent the use of breakpoints.
+
+#define CYG_SR (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK)
+#define CYG_SR_BANK1 (CYGARC_REG_SR_MD|CYGARC_REG_SR_IMASK|CYGARC_REG_SR_RB)
+
+##-----------------------------------------------------------------------------
+## Hardware init macros
+#ifndef CYGPKG_HAL_SH_POST_RESET_INIT
+	.macro  hal_post_reset_init
+        # Initialize CPU
+        mov.l   $nCYG_SR,r1             ! Put CPU in a well-known state
+        ldc     r1,sr
+        mov     #0,r0
+        mov.l   $nCYGARC_REG_CCR,r1     ! Disable cache
+        mov.l   r0,@r1
+        mov.l   $nCYGARC_REG_MMUCR,r1   ! Disable MMU
+        mov.l   r0,@r1
+        mov.l   $nCYGARC_REG_BBRA,r1    ! Disable UBC Channel A
+        mov.w   r0,@r1
+        mov.l   $nCYGARC_REG_BBRB,r1    ! Disable UBC Channel B
+        mov.w   r0,@r1
+        mov.l   $nCYGARC_REG_BRCR,r1    ! Reset UBC common register
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_TSTR,r1     ! Disable timers
+        mov.b   r0,@r1
+        mov.l   $CYGARC_REG_IPRA,r1     ! Disable interrupt request sources
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_IPRB,r1
+        mov.w   r0,@r1
+        mov.l   $CYGARC_REG_IPRC,r1
+        mov.w   r0,@r1
+	mov.w	$nCYG_WTCSR,r0          ! Clear watchdog
+	mov.l   $nCYGARC_REG_WTCSR,r1
+	mov.w	r0,@r1
+
+        # Initialize VBR if necessary
+#if     !defined(CYG_HAL_STARTUP_RAM) ||                \
+        (       defined(CYG_HAL_STARTUP_RAM) &&         \
+                !defined(CYGSEM_HAL_USE_ROM_MONITOR))
+        mov.l   $__reset,r1             ! Set VBR
+        ldc     r1,vbr
+#endif
+	bra	1f
+	 nop
+	
+$nCYG_WTCSR:
+	.word	0xa500		! clear all CSR bits
+
+	.align	2
+$nCYG_SR:
+        .long   CYG_SR
+$nCYGARC_REG_CCR:
+	.long	CYGARC_REG_CCR
+$nCYGARC_REG_MMUCR:
+	.long	CYGARC_REG_MMUCR
+$nCYGARC_REG_BBRA:
+	.long	CYGARC_REG_BBRA
+$nCYGARC_REG_BBRB:
+	.long	CYGARC_REG_BBRB
+$nCYGARC_REG_BRCR:
+	.long	CYGARC_REG_BRCR
+$CYGARC_REG_TSTR:
+        .long   CYGARC_REG_TSTR
+$CYGARC_REG_IPRA:
+        .long   CYGARC_REG_IPRA
+$CYGARC_REG_IPRB:
+        .long   CYGARC_REG_IPRB
+$CYGARC_REG_IPRC:
+        .long   CYGARC_REG_IPRC
+$nCYGARC_REG_WTCSR:
+	.long	CYGARC_REG_WTCSR
+$__reset:
+        .long   __reset
+
+1:	
+	.endm
+#define CYGPKG_HAL_SH_POST_RESET_INIT
+#endif
+
+##-----------------------------------------------------------------------------
+## Interrupt decode macros
+	.macro	hal_intc_decode tmp,inum
+        mov.l   $nCYGARC_REG_INTEVT,\tmp
+        mov.l   @\tmp,\inum
+        mov     #-5,\tmp                ! divide cause by 0x20
+        shld    \tmp,\inum
+        add     #-14,\inum              ! adjust so NMI becomes 0
+	.endm
+	
+#ifdef CYGIMP_HAL_COMMON_INTERRUPTS_CHAIN
+	.macro	hal_intc_translate inum,vnum
+	mov     #0,\vnum		! Just vector zero is supported
+	.endm
+#else			
+	.macro	hal_intc_translate inum,vnum
+	mov	\inum,\vnum		! Vector == interrupt number
+        shll2   \vnum                   ! get from vector number to ISR index
+	.endm
+#endif
+
+#------------------------------------------------------------------------------
+#endif // CYGONCE_HAL_VARIANT_INC
+# end of variant.inc
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/src/sh4_scif.c
@@ -0,0 +1,333 @@
+//=============================================================================
+//
+//      sh4_scif.c
+//
+//      Simple driver for the SH4 Serial Communication Interface with FIFO
+//
+//=============================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//=============================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):   jskov
+// Contributors:Haruki Kashiwaya
+// Date:        2000-08-09
+// Description: Simple driver for the SH Serial Communication Interface
+//              The driver can be used for the SCIF modules.
+//              Clients of this file can configure the behavior with:
+//              CYGNUM_SCIF_PORTS: number of SCI ports
+//
+//####DESCRIPTIONEND####
+//
+//=============================================================================
+
+#include <pkgconf/hal.h>
+
+#ifdef CYGNUM_HAL_SH_SH4_SCIF_PORTS
+
+#include <cyg/hal/hal_io.h>             // IO macros
+#include <cyg/hal/drv_api.h>            // CYG_ISR_HANDLED
+#include <cyg/hal/hal_misc.h>           // Helper functions
+#include <cyg/hal/hal_intr.h>           // HAL_ENABLE/MASK/UNMASK_INTERRUPTS
+#include <cyg/hal/hal_arch.h>           // SAVE/RESTORE GP
+#include <cyg/hal/hal_if.h>             // Calling-if API
+#include <cyg/hal/sh_regs.h>            // serial register definitions
+#include <cyg/hal/sh_stub.h>            // target_register_t
+
+#include <cyg/hal/sh4_scif.h>           // our header
+
+//--------------------------------------------------------------------------
+
+void
+cyg_hal_plf_scif_init_channel(const channel_data_t* chan)
+{
+    cyg_uint8* base = chan->base;
+    cyg_uint16 tmp;
+    cyg_uint16 sr;
+
+    // Disable everything.
+    HAL_WRITE_UINT16(base+_REG_SCSCR, 0);
+
+    // Reset FIFO.
+    HAL_WRITE_UINT16(base+_REG_SCFCR, 
+                    CYGARC_REG_SCFCR2_TFRST|CYGARC_REG_SCFCR2_RFRST);
+
+    // 8-1-no parity.
+    HAL_WRITE_UINT16(base+_REG_SCSMR, 0);
+
+    // Set speed to 38400
+    HAL_READ_UINT16(base+_REG_SCSMR, tmp);
+    tmp &= ~CYGARC_REG_SCSMR2_CKSx_MASK;
+    tmp |= CYGARC_SCBRR_CKSx(38400);
+    HAL_WRITE_UINT16(base+_REG_SCSMR, tmp);
+    HAL_WRITE_UINT8(base+_REG_SCBRR, CYGARC_SCBRR_N(38400));
+
+    // Let things settle: Here we should should wait the equivalent of
+    // one bit interval, i.e. 1/38400 second, but until we have
+    // something like the Linux delay loop, it's hard to do reliably. So
+    // just move on and hope for the best (this is unlikely to cause
+    // problems since the CPU has just come out of reset anyway).
+
+    // Clear status register (read back first).
+    HAL_READ_UINT16(base+_REG_SCFSR, sr);
+    HAL_WRITE_UINT16(base+_REG_SCFSR, 0);
+
+    // Bring FIFO out of reset and set to trigger on every char in
+    // FIFO (or C-c input would not be processed).
+    HAL_WRITE_UINT16(base+_REG_SCFCR, 
+                    CYGARC_REG_SCFCR2_RTRG_1|CYGARC_REG_SCFCR2_TTRG_1);
+
+    // Leave Tx/Rx interrupts disabled, but enable Tx/Rx
+    HAL_WRITE_UINT16(base+_REG_SCSCR, 
+                    CYGARC_REG_SCSCR2_TE|CYGARC_REG_SCSCR2_RE);
+}
+
+static cyg_bool
+cyg_hal_plf_scif_getc_nonblock(void* __ch_data, cyg_uint8* ch)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint16 fdr, sr;
+
+    HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    if ((fdr & CYGARC_REG_SCFDR2_RCOUNT_MASK) == 0)
+        return false;
+
+    HAL_READ_UINT8(base+_REG_SCFRDR, *ch);
+
+    // Clear FIFO full flag (read before clearing)
+    HAL_READ_UINT16(base+_REG_SCFSR, sr);
+    HAL_WRITE_UINT16(base+_REG_SCFSR,
+                    CYGARC_REG_SCSSR2_CLEARMASK & ~CYGARC_REG_SCSSR2_RDF);
+
+    return true;
+}
+
+cyg_uint8
+cyg_hal_plf_scif_getc(void* __ch_data)
+{
+    cyg_uint8 ch;
+    CYGARC_HAL_SAVE_GP();
+
+    while(!cyg_hal_plf_scif_getc_nonblock(__ch_data, &ch));
+
+    CYGARC_HAL_RESTORE_GP();
+    return ch;
+}
+
+void
+cyg_hal_plf_scif_putc(void* __ch_data, cyg_uint8 c)
+{
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    cyg_uint16 fdr, sr;
+    CYGARC_HAL_SAVE_GP();
+
+    do {
+        HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    } while (((fdr & CYGARC_REG_SCFDR2_TCOUNT_MASK) >> CYGARC_REG_SCFDR2_TCOUNT_shift) == 16);
+
+    HAL_WRITE_UINT8(base+_REG_SCFTDR, c);
+
+    // Clear FIFO-empty/transmit end flags (read back SR first)
+    HAL_READ_UINT16(base+_REG_SCFSR, sr);
+    HAL_WRITE_UINT16(base+_REG_SCFSR, CYGARC_REG_SCSSR2_CLEARMASK   
+                     & ~(CYGARC_REG_SCSSR2_TDFE | CYGARC_REG_SCSSR2_TEND ));
+
+    // Hang around until the character has been safely sent.
+    do {
+        HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    } while ((fdr & CYGARC_REG_SCFDR2_TCOUNT_MASK) != 0);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+#if defined(CYGSEM_HAL_VIRTUAL_VECTOR_DIAG) \
+    || defined(CYGPRI_HAL_IMPLEMENTS_IF_SERVICES)
+
+static channel_data_t channels[CYGNUM_HAL_SH_SH4_SCIF_PORTS];
+
+static void
+cyg_hal_plf_scif_write(void* __ch_data, const cyg_uint8* __buf, 
+                         cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        cyg_hal_plf_scif_putc(__ch_data, *__buf++);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+static void
+cyg_hal_plf_scif_read(void* __ch_data, cyg_uint8* __buf, cyg_uint32 __len)
+{
+    CYGARC_HAL_SAVE_GP();
+
+    while(__len-- > 0)
+        *__buf++ = cyg_hal_plf_scif_getc(__ch_data);
+
+    CYGARC_HAL_RESTORE_GP();
+}
+
+cyg_bool
+cyg_hal_plf_scif_getc_timeout(void* __ch_data, cyg_uint8* ch)
+{
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    int delay_count;
+    cyg_bool res;
+    CYGARC_HAL_SAVE_GP();
+
+    delay_count = chan->msec_timeout * 10; // delay in .1 ms steps
+
+    for(;;) {
+        res = cyg_hal_plf_scif_getc_nonblock(__ch_data, ch);
+        if (res || 0 == delay_count--)
+            break;
+        
+        CYGACC_CALL_IF_DELAY_US(100);
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+static int
+cyg_hal_plf_scif_control(void *__ch_data, __comm_control_cmd_t __func, ...)
+{
+    static int irq_state = 0;
+    channel_data_t* chan = (channel_data_t*)__ch_data;
+    cyg_uint8 scr;
+    int ret = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    switch (__func) {
+    case __COMMCTL_IRQ_ENABLE:
+        irq_state = 1;
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        HAL_READ_UINT16(chan->base+_REG_SCSCR, scr);
+        scr |= CYGARC_REG_SCSCR2_RIE;
+        HAL_WRITE_UINT16(chan->base+_REG_SCSCR, scr);
+        break;
+    case __COMMCTL_IRQ_DISABLE:
+        ret = irq_state;
+        irq_state = 0;
+        HAL_INTERRUPT_UNMASK(chan->isr_vector);
+        HAL_READ_UINT16(chan->base+_REG_SCSCR, scr);
+        scr &= ~CYGARC_REG_SCSCR2_RIE;
+        HAL_WRITE_UINT16(chan->base+_REG_SCSCR, scr);
+        break;
+    case __COMMCTL_DBG_ISR_VECTOR:
+        ret = chan->isr_vector;
+        break;
+    case __COMMCTL_SET_TIMEOUT:
+    {
+        va_list ap;
+
+        va_start(ap, __func);
+
+        ret = chan->msec_timeout;
+        chan->msec_timeout = va_arg(ap, cyg_uint32);
+
+        va_end(ap);
+    }        
+    default:
+        break;
+    }
+    CYGARC_HAL_RESTORE_GP();
+    return ret;
+}
+
+static int
+cyg_hal_plf_scif_isr(void *__ch_data, int* __ctrlc, 
+                     CYG_ADDRWORD __vector, CYG_ADDRWORD __data)
+{
+    cyg_uint8 c;
+    cyg_uint16 fdr, sr;
+    cyg_uint8* base = ((channel_data_t*)__ch_data)->base;
+    int res = 0;
+    CYGARC_HAL_SAVE_GP();
+
+    *__ctrlc = 0;
+    HAL_READ_UINT16(base+_REG_SCFDR, fdr);
+    if ((fdr & CYGARC_REG_SCFDR2_RCOUNT_MASK) != 0) {
+        HAL_READ_UINT8(base+_REG_SCFRDR, c);
+
+        // Clear buffer full flag (read back first).
+        HAL_READ_UINT16(base+_REG_SCFSR, sr);
+        HAL_WRITE_UINT16(base+_REG_SCFSR, 
+                         CYGARC_REG_SCSSR2_CLEARMASK & ~CYGARC_REG_SCSSR2_RDF);
+
+        if( cyg_hal_is_break( &c , 1 ) )
+            *__ctrlc = 1;
+
+        res = CYG_ISR_HANDLED;
+    }
+
+    CYGARC_HAL_RESTORE_GP();
+    return res;
+}
+
+void
+cyg_hal_plf_scif_init(int scif_index, int comm_index, 
+                      int rcv_vect, cyg_uint8* base)
+{
+    channel_data_t* chan = &channels[scif_index];
+    hal_virtual_comm_table_t* comm;
+    int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
+
+    // Initialize channel table
+    chan->base = base;
+    chan->isr_vector = rcv_vect;
+    chan->msec_timeout = 1000;
+
+    // Disable interrupts.
+    HAL_INTERRUPT_MASK(chan->isr_vector);
+
+    // Init channel
+    cyg_hal_plf_scif_init_channel(chan);
+
+    // Setup procs in the vector table
+
+    // Initialize channel procs
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(comm_index);
+    comm = CYGACC_CALL_IF_CONSOLE_PROCS();
+    CYGACC_COMM_IF_CH_DATA_SET(*comm, chan);
+    CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_scif_write);
+    CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_scif_read);
+    CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_scif_putc);
+    CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_scif_getc);
+    CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_scif_control);
+    CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_scif_isr);
+    CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_scif_getc_timeout);
+
+    // Restore original console
+    CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
+}
+
+#endif // CYGSEM_HAL_VIRTUAL_VECTOR_DIAG || CYGPRI_HAL_IMPLEMENTS_IF_SERVICES
+
+#endif // CYGNUM_HAL_SH_SH4_SCIF_PORTS
+
+//-----------------------------------------------------------------------------
+// end of sh4_scif.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/src/var_misc.c
@@ -0,0 +1,272 @@
+//==========================================================================
+//
+//      var_misc.c
+//
+//      HAL miscellaneous functions
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    jskov
+// Contributors: jskov, jlarmour, nickg
+// Date:         1999-04-03
+// Purpose:      HAL miscellaneous functions
+// Description:  This file contains miscellaneous functions provided by the
+//               HAL.
+//
+//####DESCRIPTIONEND####
+//
+//===========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/infra/cyg_type.h>
+#include <cyg/infra/cyg_trac.h>         // tracing macros
+#include <cyg/infra/cyg_ass.h>          // assertion macros
+#include <cyg/infra/diag.h>             // diag_printf
+
+#include <cyg/hal/hal_arch.h>           // HAL header
+#include <cyg/hal/hal_cache.h>          // HAL cache
+#include <cyg/hal/hal_intr.h>           // HAL interrupts/exceptions
+
+//---------------------------------------------------------------------------
+// Initial cache enabling
+
+#ifdef CYGHWR_HAL_SH_CACHE_MODE_P0_WRITE_BACK
+# define CACHE_MODE_P0 0
+#else
+# define CACHE_MODE_P0 CYGARC_REG_CCR_WT
+#endif
+
+#ifdef CYGHWR_HAL_SH_CACHE_MODE_P1_WRITE_BACK
+# define CACHE_MODE_P1 CYGARC_REG_CCR_CB
+#else
+# define CACHE_MODE_P1 0
+#endif
+
+externC void
+cyg_var_enable_caches(void)
+{
+    // Initialize cache.
+    HAL_DCACHE_INVALIDATE_ALL();    
+    HAL_ICACHE_INVALIDATE_ALL();    
+
+    // Set cache modes
+    HAL_DCACHE_WRITE_MODE_SH(CACHE_MODE_P0|CACHE_MODE_P1);
+
+#ifdef CYGHWR_HAL_SH_CACHE_ENABLE
+    // Enable cache.
+    HAL_ICACHE_ENABLE();
+    HAL_DCACHE_ENABLE();
+#endif
+}
+
+//---------------------------------------------------------------------------
+void
+hal_variant_init(void)
+{
+}
+
+//---------------------------------------------------------------------------
+
+#ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
+externC cyg_uint8 cyg_hal_ILVL_table[];
+#define HAL_UPDATE_ILVL_TABLE(_vector_, _level_)                         \
+    /* Update the ILVL table, so it is easy for the interrupt entry */   \
+    /* code to find out the level of a given interrupt source.      */   \
+    cyg_hal_ILVL_table[(_vector_)] = (_level_)
+#else
+#define HAL_UPDATE_ILVL_TABLE(_vector_, _level_)
+#endif
+
+void
+hal_interrupt_set_level(int vector, int level)
+{
+    cyg_uint16 iprX;
+
+    CYG_ASSERT((0 <= (level) && 15 >= (level)), "Illegal level");
+    CYG_ASSERT((CYGNUM_HAL_ISR_MIN <= (vector)
+                && CYGNUM_HAL_ISR_MAX >= (vector)), "Illegal vector");
+
+    HAL_UPDATE_ILVL_TABLE(vector, level);
+
+    switch( (vector) ) {
+    case CYGNUM_HAL_INTERRUPT_NMI:
+        /* fall through */
+    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:
+        /* Cannot change levels */
+        break;
+
+    /* IPRA */
+    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0:
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);
+        iprX &= ~CYGARC_REG_IPRA_TMU0_MASK;
+        iprX |= (level)*CYGARC_REG_IPRA_TMU0_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_TMU1_TUNI1:
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);
+        iprX &= ~CYGARC_REG_IPRA_TMU1_MASK;
+        iprX |= (level)*CYGARC_REG_IPRA_TMU1_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_TMU2_TUNI2:
+    case CYGNUM_HAL_INTERRUPT_TMU2_TICPI2:
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);
+        iprX &= ~CYGARC_REG_IPRA_TMU2_MASK;
+        iprX |= (level)*CYGARC_REG_IPRA_TMU2_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_RTC_ATI:
+    case CYGNUM_HAL_INTERRUPT_RTC_PRI:
+    case CYGNUM_HAL_INTERRUPT_RTC_CUI:
+        HAL_READ_UINT16(CYGARC_REG_IPRA, iprX);
+        iprX &= ~CYGARC_REG_IPRA_RTC_MASK;
+        iprX |= (level)*CYGARC_REG_IPRA_RTC_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRA, iprX);
+        break;
+
+    /* IPRB */
+    case CYGNUM_HAL_INTERRUPT_SCI_ERI:
+    case CYGNUM_HAL_INTERRUPT_SCI_RXI:
+    case CYGNUM_HAL_INTERRUPT_SCI_TXI:
+    case CYGNUM_HAL_INTERRUPT_SCI_TEI:
+        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);
+        iprX &= ~CYGARC_REG_IPRB_SCI_MASK;
+        iprX |= (level)*CYGARC_REG_IPRB_SCI_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_WDT_ITI:
+        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);
+        iprX &= ~CYGARC_REG_IPRB_WDT_MASK;
+        iprX |= (level)*CYGARC_REG_IPRB_WDT_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_REF_RCMI:
+    case CYGNUM_HAL_INTERRUPT_REF_ROVI:
+        HAL_READ_UINT16(CYGARC_REG_IPRB, iprX);
+        iprX &= ~CYGARC_REG_IPRB_REF_MASK;
+        iprX |= (level)*CYGARC_REG_IPRB_REF_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRB, iprX);
+        break;
+
+    /* IPRC */
+    case CYGNUM_HAL_INTERRUPT_HUDI:
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);
+        iprX &= ~CYGARC_REG_IPRC_HUDI_MASK;
+        iprX |= (level)*CYGARC_REG_IPRC_HUDI_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_GPIO:
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);
+        iprX &= ~CYGARC_REG_IPRC_GPIO_MASK;
+        iprX |= (level)*CYGARC_REG_IPRC_GPIO_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_DMAC_DMTE0:
+    case CYGNUM_HAL_INTERRUPT_DMAC_DMTE1:
+    case CYGNUM_HAL_INTERRUPT_DMAC_DMTE2:
+    case CYGNUM_HAL_INTERRUPT_DMAC_DMTE3:
+    case CYGNUM_HAL_INTERRUPT_DMAC_DMAE:
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);
+        iprX &= ~CYGARC_REG_IPRC_DMAC_MASK;
+        iprX |= (level)*CYGARC_REG_IPRC_DMAC_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_SCIF_ERI:
+    case CYGNUM_HAL_INTERRUPT_SCIF_RXI:
+    case CYGNUM_HAL_INTERRUPT_SCIF_BRI:
+    case CYGNUM_HAL_INTERRUPT_SCIF_TXI:
+        HAL_READ_UINT16(CYGARC_REG_IPRC, iprX);
+        iprX &= ~CYGARC_REG_IPRC_DMAC_MASK;
+        iprX |= (level)*CYGARC_REG_IPRC_DMAC_PRI1;
+        HAL_WRITE_UINT16(CYGARC_REG_IPRC, iprX);
+        break;
+    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:
+    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:
+    case CYGNUM_HAL_INTERRUPT_RESERVED_5C0:
+    case CYGNUM_HAL_INTERRUPT_RESERVED_5E0:
+    case CYGNUM_HAL_INTERRUPT_RESERVED_6E0:
+        /* Do nothing for these reserved vectors. */
+        break;
+    }
+}
+
+void
+hal_interrupt_mask(int vector)                                    
+{
+    switch( vector ) {
+    case CYGNUM_HAL_INTERRUPT_NMI:
+        /* fall through */
+    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:
+        /* Can only be masked by fiddling Imask in SR. */
+        break;
+    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0...CYGNUM_HAL_ISR_MAX:
+        HAL_INTERRUPT_SET_LEVEL((vector), 0);
+        break;
+    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:
+    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:
+        /* Do nothing for these reserved vectors. */
+        break;
+    default:
+        CYG_FAIL("Unknown interrupt vector");
+        break;
+    }
+}
+
+void
+hal_interrupt_unmask(int vector)                                  
+{
+    switch( (vector) ) {
+    case CYGNUM_HAL_INTERRUPT_NMI:
+        /* fall through */
+    case CYGNUM_HAL_INTERRUPT_LVL0...CYGNUM_HAL_INTERRUPT_LVL14:
+        /* Can only be unmasked by fiddling Imask in SR. */
+        break;
+    case CYGNUM_HAL_INTERRUPT_TMU0_TUNI0...CYGNUM_HAL_ISR_MAX:
+        HAL_INTERRUPT_SET_LEVEL((vector), 1);
+        break;
+    case CYGNUM_HAL_INTERRUPT_RESERVED_1E0:
+    case CYGNUM_HAL_INTERRUPT_RESERVED_3E0:
+        /* Do nothing for these reserved vectors. */
+        break;
+    default:
+        CYG_FAIL("Unknown interrupt vector");
+        break;
+    }
+}
+
+
+void
+hal_interrupt_acknowledge(int vector)
+{
+}
+
+void 
+hal_interrupt_configure(int vector, int level, int up)
+{
+}
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/src/var_mk_defs.c
@@ -0,0 +1,91 @@
+//==========================================================================
+//
+//      var_mk_defs.c
+//
+//      HAL (variant) "make defs" program
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    gthomas
+// Contributors: gthomas, jskov
+// Date:         2000-02-21
+// Purpose:      SH architecture dependent definition generator
+// Description:  This file contains code that can be compiled by the target
+//               compiler and used to generate machine specific definitions
+//               suitable for use in assembly code.
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/hal_arch.h>           // HAL header
+#include <cyg/hal/hal_intr.h>           // HAL header
+#include <cyg/hal/hal_cache.h>          // HAL header
+#ifdef CYGPKG_KERNEL
+# include <pkgconf/kernel.h>
+# include <cyg/kernel/instrmnt.h>
+#endif
+
+/*
+ * This program is used to generate definitions needed by
+ * assembly language modules.
+ *
+ * This technique was first used in the OSF Mach kernel code:
+ * generate asm statements containing #defines,
+ * compile this file to assembler, and then extract the
+ * #defines from the assembly-language output.
+ */
+
+#define DEFINE(sym, val) \
+        asm volatile("\n\t.equ\t" #sym ",%0" : : "i" (val))
+
+int
+main(void)
+{
+    // Caching details
+    DEFINE(HAL_ICACHE_SIZE, HAL_ICACHE_SIZE);
+    DEFINE(HAL_ICACHE_WAYS, HAL_ICACHE_WAYS);
+    DEFINE(HAL_ICACHE_LINE_SIZE, HAL_ICACHE_LINE_SIZE);
+    DEFINE(CYGARC_REG_ICACHE_ADDRESS_BASE,CYGARC_REG_ICACHE_ADDRESS_BASE);
+    DEFINE(CYGARC_REG_ICACHE_ADDRESS_TOP,CYGARC_REG_ICACHE_ADDRESS_TOP);
+    DEFINE(CYGARC_REG_ICACHE_ADDRESS_STEP,CYGARC_REG_ICACHE_ADDRESS_STEP);
+    DEFINE(CYGARC_REG_ICACHE_ADDRESS_FLUSH, CYGARC_REG_ICACHE_ADDRESS_FLUSH);
+
+    DEFINE(HAL_DCACHE_SIZE, HAL_DCACHE_SIZE);
+    DEFINE(HAL_DCACHE_WAYS, HAL_DCACHE_WAYS);
+    DEFINE(HAL_DCACHE_LINE_SIZE, HAL_DCACHE_LINE_SIZE);
+    DEFINE(CYGARC_REG_DCACHE_ADDRESS_BASE,CYGARC_REG_DCACHE_ADDRESS_BASE);
+    DEFINE(CYGARC_REG_DCACHE_ADDRESS_TOP,CYGARC_REG_DCACHE_ADDRESS_TOP);
+    DEFINE(CYGARC_REG_DCACHE_ADDRESS_STEP,CYGARC_REG_DCACHE_ADDRESS_STEP);
+    DEFINE(CYGARC_REG_DCACHE_ADDRESS_FLUSH, CYGARC_REG_DCACHE_ADDRESS_FLUSH);
+}
+
+//--------------------------------------------------------------------------
+// EOF var_mk_defs.c
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/sh4/current/src/variant.S
@@ -0,0 +1,213 @@
+##==========================================================================
+##
+##      variant.S
+##
+##      SH4 variant assembly code
+##
+##==========================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.1 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://www.redhat.com/                                                   
+#                                                                          
+# Software distributed under the License is distributed on an "AS IS"      
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##==========================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s):    jskov
+## Contributors: jskov
+## Date:         2000-10-31
+## Purpose:      SH4 misc assembly code
+######DESCRIPTIONEND####
+##
+##==========================================================================
+
+#include <pkgconf/hal.h>
+#include <pkgconf/hal_sh.h>
+
+#include <cyg/hal/sh_regs.h>
+#include <cyg/hal/sh4_offsets.inc>
+
+#---------------------------------------------------------------------------
+# Cache operations
+# These need to be written in assembly to ensure they do not rely on data
+# in cachable space (i.e., code must use registers exclusively, not the stack).
+
+# This macro must be used at the top of each cache function. It ensures
+# that the code gets executed from a shadow region where caching is disabled
+# (0xA0000000).
+        .macro GOTO_NONCACHED_SHADOW
+        mova    10f,r0
+        mov.l   $MASK,r1
+        and     r1,r0
+        mov.l   $BASE,r1
+        or      r1,r0
+        jmp     @r0
+         nop
+        .align  2
+10:
+        .endm
+
+        .globl _cyg_hal_dcache_enable
+_cyg_hal_dcache_enable:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov     #CYGARC_REG_CCR_OCE,r2
+        mov.l   r2,@r1
+        nop
+        rts
+         nop
+
+        .globl _cyg_hal_dcache_disable
+_cyg_hal_dcache_disable:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov     #CYGARC_REG_CCR_OCE,r2
+        not     r2,r2
+        and     r2,r0
+        mov.l   r0,@r1
+        nop
+        rts
+         nop
+        
+        .globl _cyg_hal_dcache_invalidate_all
+_cyg_hal_dcache_invalidate_all:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov     #CYGARC_REG_CCR_OCI,r2
+        or      r2,r0
+        mov.l   r0,@r1
+        nop                             ! Nothing in the docs suggest we need
+        nop                             ! nops here, but without them, the
+        nop                             ! CPU crashes.
+        rts
+         nop
+
+        .globl _cyg_hal_dcache_sync
+_cyg_hal_dcache_sync:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $CYGARC_REG_DCACHE_ADDRESS_FLUSH,r0
+        mov.l   $CYGARC_REG_DCACHE_ADDRESS_BASE,r1
+        mov.l   $CYGARC_REG_DCACHE_ADDRESS_TOP,r2
+        mov.l   $CYGARC_REG_DCACHE_ADDRESS_STEP,r3
+1:      cmp/hi  r1,r2
+        bf      2f
+        mov.l   r0,@r1
+        bra     1b        
+         add     r3,r1                  ! delay slot!
+2:      nop
+        rts
+         nop
+
+        .align  2
+$CYGARC_REG_DCACHE_ADDRESS_FLUSH:
+        .long   CYGARC_REG_DCACHE_ADDRESS_FLUSH
+$CYGARC_REG_DCACHE_ADDRESS_BASE:
+        .long   CYGARC_REG_DCACHE_ADDRESS_BASE
+$CYGARC_REG_DCACHE_ADDRESS_TOP:
+        .long   CYGARC_REG_DCACHE_ADDRESS_TOP
+$CYGARC_REG_DCACHE_ADDRESS_STEP:
+        .long   CYGARC_REG_DCACHE_ADDRESS_STEP
+
+
+	! r4 = base
+	! r5 = size
+        .globl _cyg_hal_dcache_sync_region
+_cyg_hal_dcache_sync_region:
+        GOTO_NONCACHED_SHADOW
+1:	ocbp	@r4                     ! operand cache block purge
+	add	#CYGARC_SH_MOD_DCAC_ADDRESS_STEP,r4
+	add     #-CYGARC_SH_MOD_DCAC_ADDRESS_STEP,r5
+        cmp/pl  r5
+	bt	1b
+        rts
+         nop
+
+        .globl _cyg_hal_dcache_write_mode
+_cyg_hal_dcache_write_mode:
+        GOTO_NONCACHED_SHADOW
+        # Mode argument in r4.
+        # Read current state and mask out the two caching mode bits
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r3
+        mov     #CYGARC_REG_CCR_CB|CYGARC_REG_CCR_WT,r2
+	and	r2,r4
+        not     r2,r2
+        and     r2,r3
+        # Or in the new settings and restore to CCR
+        or      r4,r3
+        mov.l   r3,@r1
+        nop
+        rts
+         nop
+
+
+        .globl _cyg_hal_icache_enable
+_cyg_hal_icache_enable:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov.l   $nCYGARC_REG_CCR_ICE,r2
+        mov.l   r2,@r1
+        nop
+        rts
+         nop
+
+        .globl _cyg_hal_icache_disable
+_cyg_hal_icache_disable:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov.l   $nCYGARC_REG_CCR_ICE,r2
+        not     r2,r2
+        and     r2,r0
+        mov.l   r0,@r1
+        nop
+        rts
+         nop
+        
+        .globl _cyg_hal_icache_invalidate_all
+_cyg_hal_icache_invalidate_all:
+        GOTO_NONCACHED_SHADOW
+        mov.l   $nCYGARC_REG_CCR,r1
+        mov.l   @r1,r0
+        mov.l   $nCYGARC_REG_CCR_ICI,r2
+        or      r2,r0
+        mov.l   r0,@r1
+        nop                             ! Nothing in the docs suggest we need
+        nop                             ! nops here, but without them, the
+        nop                             ! CPU crashes.
+        rts
+         nop
+
+	.align	2
+$MASK:
+        .long   0x1fffffff              ! mask off top 3 bits
+$BASE:
+        .long   0xa0000000              ! base of non-cachable memory
+$nCYGARC_REG_CCR:
+	.long	CYGARC_REG_CCR        
+$nCYGARC_REG_CCR_ICE:
+	.long	CYGARC_REG_CCR_ICE
+$nCYGARC_REG_CCR_ICI:
+	.long	CYGARC_REG_CCR_ICI
--- a/packages/io/fileio/current/ChangeLog
+++ b/packages/io/fileio/current/ChangeLog
@@ -1,3 +1,15 @@
+2000-11-01  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* src/io.cxx (readwrite): Ensure we call FILEIO_RETURN_VALUE() to
+	get correct cleanup
+	(fpathconf): Ditto
+	(lseek): Ditto
+
+	* src/file.cxx (open): If applicable, refer to stdin, stdout and stderr
+	here to ensure they are pulled in, in case selective linking would
+	otherwise eliminate them. This is to ensure they get allocated to
+	fd's 0, 1 and 2.
+
 2000-10-13  Nick Garnett  <nickg@cygnus.co.uk>
 
 	* src/io.cxx (readwrite): Merged both read() and write() functions
--- a/packages/io/fileio/current/src/file.cxx
+++ b/packages/io/fileio/current/src/file.cxx
@@ -47,6 +47,7 @@
 #include <pkgconf/hal.h>
 #include <pkgconf/kernel.h>
 #include <pkgconf/io_fileio.h>
+#include <pkgconf/isoinfra.h>
 
 #include <cyg/kernel/ktypes.h>         // base kernel types
 #include <cyg/infra/cyg_trac.h>        // tracing macros
@@ -54,6 +55,7 @@
 
 #include <string.h>                    // string functions
 #include <dirent.h>
+#include <stdio.h>                     // stdin, stdout, stderr
 
 #include "fio.h"                       // Private header
 
@@ -168,6 +170,14 @@ static Cyg_Mutex getcwd_lock CYGBLD_ATTR
 {
     FILEIO_ENTRY();
 
+    // we want to be sure we pull in stdin/out/err, so they can be
+    // assigned to fds 0, 1 and 2
+#ifdef CYGINT_ISO_STDIO_STREAMS
+    CYG_REFERENCE_OBJECT(stdin);
+    CYG_REFERENCE_OBJECT(stdout);
+    CYG_REFERENCE_OBJECT(stderr);
+#endif
+
     CYG_CANCELLATION_POINT;
 
     int ret = 0;
--- a/packages/io/fileio/current/src/io.cxx
+++ b/packages/io/fileio/current/src/io.cxx
@@ -126,8 +126,7 @@ static ssize_t readwrite( int fd, void *
 
     CYG_CANCELLATION_POINT;
  
-    CYG_REPORT_RETVAL(cnt);
-    return cnt;
+    FILEIO_RETURN_VALUE(cnt);
 }
 
 //==========================================================================
@@ -200,8 +199,7 @@ static ssize_t readwrite( int fd, void *
     if( ret != 0 )
         FILEIO_RETURN(ret);
     
-    CYG_REPORT_RETVAL(pos);
-    return pos;
+    FILEIO_RETURN_VALUE(pos);
 }
 
 //==========================================================================
@@ -347,8 +345,7 @@ static ssize_t readwrite( int fd, void *
     if( ret != 0 )
         FILEIO_RETURN(ret);
 
-    CYG_REPORT_RETVAL(info.value);
-    return info.value;
+    FILEIO_RETURN_VALUE(info.value);
 }
 
 //==========================================================================
deleted file mode 100644
--- a/packages/io/flash/current/src/flash.h
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#define FLASH_Read_ID      0x90
-#define FLASH_Read_Query   0x98
-#define FLASH_Read_Status  0x70
-#define FLASH_Clear_Status 0x50
-#define FLASH_Status_Ready 0x80
-#define FLASH_Write        0xE8
-#define FLASH_Program      0x10
-#define FLASH_Block_Erase  0x20
-#define FLASH_Clear_Locks  0x60
-#define FLASH_Confirm      0xD0
-#define FLASH_Configure    0xB8
-#define FLASH_Configure_ReadyWait      0x00
-#define FLASH_Configure_PulseOnErase   0x01
-#define FLASH_Configure_PulseOnProgram 0x02
-#define FLASH_Configure_PulseOnBoth    0x03
-#define FLASH_Reset        0xFF
-
-#define FLASH_BLOCK_SIZE   0x10000
--- a/packages/io/serial/current/ChangeLog
+++ b/packages/io/serial/current/ChangeLog
@@ -153,6 +153,10 @@ 2000-05-28  Gary Thomas  <gthomas@redhat
 
 	* tests/ser_test_protocol.inl: Rename NEC V85x drivers.
 
+2000-05-25  Jesper Skov  <jskov@redhat.com>
+
+	* tests/ser_test_protocol.inl: Added rules for REF4955.
+
 2000-05-08  Jesper Skov  <jskov@redhat.com>
 
     	* cdl/io_serial.cdl: active_if CYGPKG_IO
--- a/packages/isoinfra/current/ChangeLog
+++ b/packages/isoinfra/current/ChangeLog
@@ -1,3 +1,11 @@
+2000-11-01  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* cdl/isoinfra.cdl: Add CYGINT_ISO_STDIO_STREAMS and
+	CYGBLD_ISO_STDIO_STREAMS_HEADER.
+	Change flavor of other stdio interfaces to booldata
+	* include/stdio.h: Use #ifdefs not #ifs on interfaces to reflect above
+	Add CYGINT_ISO_STDIO_STREAMS and CYGBLD_ISO_STDIO_STREAMS_HEADER.
+
 2000-10-05  Nick Garnett  <nickg@cygnus.co.uk>
 
 	* include/sys/types.h: Changed type of pid_t to plain int. It
--- a/packages/isoinfra/current/cdl/isoinfra.cdl
+++ b/packages/isoinfra/current/cdl/isoinfra.cdl
@@ -149,6 +149,7 @@ cdl_package CYGPKG_ISOINFRA {
 
         cdl_interface CYGINT_ISO_STDIO_FILETYPES {
             display       "Number of implementations of stdio file types"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_FILETYPES }
         }
 
@@ -158,8 +159,23 @@ cdl_package CYGPKG_ISOINFRA {
             default_value 0
         }
 
+        cdl_interface CYGINT_ISO_STDIO_STREAMS {
+            display       "Stdio standard streams implementations"
+            flavor        booldata
+            requires      { 1 >= CYGINT_ISO_STDIO_STREAMS }
+        }
+
+        cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
+            display       "Stdio standard streams implementation header"
+            description   "This header file must define stdin, stdout
+                           and stderr."
+            flavor        booldata
+            default_value 0
+        }
+
         cdl_interface CYGINT_ISO_STDIO_FILEOPS {
             display       "Number of implementations of stdio file operations"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_FILEOPS }
         }
     
@@ -176,6 +192,7 @@ cdl_package CYGPKG_ISOINFRA {
         cdl_interface CYGINT_ISO_STDIO_FILEACCESS {
             display       "Number of implementations of stdio file access \
                           functionals"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_FILEACCESS }
         }
     
@@ -191,6 +208,7 @@ cdl_package CYGPKG_ISOINFRA {
 
         cdl_interface CYGINT_ISO_STDIO_FORMATTED_IO {
             display       "Number of implementations of stdio formatted I/O"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_FORMATTED_IO }
         }
     
@@ -202,6 +220,7 @@ cdl_package CYGPKG_ISOINFRA {
 
         cdl_interface CYGINT_ISO_STDIO_CHAR_IO {
             display       "Number of implementations of stdio character I/O"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_CHAR_IO }
         }
     
@@ -213,6 +232,7 @@ cdl_package CYGPKG_ISOINFRA {
 
         cdl_interface CYGINT_ISO_STDIO_DIRECT_IO {
             display       "Number of implementations of stdio direct I/O"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_DIRECT_IO }
         }
     
@@ -224,6 +244,7 @@ cdl_package CYGPKG_ISOINFRA {
 
         cdl_interface CYGINT_ISO_STDIO_FILEPOS {
             display       "Number of implementations of stdio file positioning"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_FILEPOS }
         }
     
@@ -235,6 +256,7 @@ cdl_package CYGPKG_ISOINFRA {
 
         cdl_interface CYGINT_ISO_STDIO_ERROR {
             display       "Number of implementations of stdio error handling"
+            flavor        booldata
             requires      { 1 >= CYGINT_ISO_STDIO_ERROR }
         }
     
--- a/packages/isoinfra/current/include/stdio.h
+++ b/packages/isoinfra/current/include/stdio.h
@@ -60,49 +60,55 @@
 #define __need_size_t
 #include <stddef.h>
 
-#if CYGINT_ISO_STDIO_FILETYPES
+#ifdef CYGINT_ISO_STDIO_FILETYPES
 # ifdef CYGBLD_ISO_STDIO_FILETYPES_HEADER
 #  include CYGBLD_ISO_STDIO_FILETYPES_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_FILEOPS
+#ifdef CYGINT_ISO_STDIO_STREAMS
+# ifdef CYGBLD_ISO_STDIO_STREAMS_HEADER
+#  include CYGBLD_ISO_STDIO_STREAMS_HEADER
+# endif
+#endif
+
+#ifdef CYGINT_ISO_STDIO_FILEOPS
 # ifdef CYGBLD_ISO_STDIO_FILEOPS_HEADER
 #  include CYGBLD_ISO_STDIO_FILEOPS_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_FILEACCESS
+#ifdef CYGINT_ISO_STDIO_FILEACCESS
 # ifdef CYGBLD_ISO_STDIO_FILEACCESS_HEADER
 #  include CYGBLD_ISO_STDIO_FILEACCESS_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_FORMATTED_IO
+#ifdef CYGINT_ISO_STDIO_FORMATTED_IO
 # ifdef CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER
 #  include CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_CHAR_IO
+#ifdef CYGINT_ISO_STDIO_CHAR_IO
 # ifdef CYGBLD_ISO_STDIO_CHAR_IO_HEADER
 #  include CYGBLD_ISO_STDIO_CHAR_IO_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_DIRECT_IO
+#ifdef CYGINT_ISO_STDIO_DIRECT_IO
 # ifdef CYGBLD_ISO_STDIO_DIRECT_IO_HEADER
 #  include CYGBLD_ISO_STDIO_DIRECT_IO_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_FILEPOS
+#ifdef CYGINT_ISO_STDIO_FILEPOS
 # ifdef CYGBLD_ISO_STDIO_FILEPOS_HEADER
 #  include CYGBLD_ISO_STDIO_FILEPOS_HEADER
 # endif
 #endif
 
-#if CYGINT_ISO_STDIO_ERROR
+#ifdef CYGINT_ISO_STDIO_ERROR
 # ifdef CYGBLD_ISO_STDIO_ERROR_HEADER
 #  include CYGBLD_ISO_STDIO_ERROR_HEADER
 # endif
--- a/packages/kernel/current/ChangeLog
+++ b/packages/kernel/current/ChangeLog
@@ -300,6 +300,10 @@ 2000-06-08  Jesper Skov  <jskov@redhat.c
 	* src/debug/dbg-thread-demux.c: Use generic HAL feature to allow
 	ROM/RAM intercalling.
 
+2000-06-06  Jesper Skov  <jskov@redhat.com>
+
+	* tests/kcache1.c (entry0): Skip invalidate tests on TX49. Too slow.
+
 2000-05-30  Gary Thomas  <gthomas@redhat.com>
 
 	* tests/dhrystone.c: Increase number of test loops for faster
@@ -344,6 +348,10 @@ 2000-05-20  Jonathan Larmour  <jlarmour@
 	(Cyg_SchedulerThreadQueue_Implementation::enqueue): Add, like old
 	one, except make it FIFO instead of LIFO by inserting at end of queue
 
+2000-05-16  Jesper Skov  <jskov@redhat.com>
+
+	* tests/dhrystone.c: More loops on the TX49
+
 2000-05-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
 
 	* cdl/counters.cdl (CYGVAR_KERNEL_COUNTERS_CLOCK_DSR_LATENCY): 
--- a/packages/kernel/current/tests/dhrystone.c
+++ b/packages/kernel/current/tests/dhrystone.c
@@ -80,6 +80,8 @@ dtime(void)
 #define PASSES 100000
 #elif defined(CYGPKG_HAL_V85X_V850_CEB)
 #define PASSES 20000
+#elif defined(CYGPKG_HAL_MIPS_TX49_REF4955)
+#define PASSES 1000000
 #elif defined(CYGPKG_HAL_POWERPC_MPC8xx)
 #define PASSES 250000
 #else
--- a/packages/kernel/current/tests/kcache1.c
+++ b/packages/kernel/current/tests/kcache1.c
@@ -324,6 +324,12 @@ static void entry0( cyg_addrword_t data 
     if (cyg_test_is_simulator)
         CYG_TEST_PASS_FINISH("End of test");
 
+#if defined(CYGPKG_HAL_MIPS_TX49)
+    // The TX49 has a large cache, and even with reduced loop count,
+    // 90+ seconds elapses between each INFO output.
+    CYG_TEST_PASS_FINISH("End of test");
+#endif
+
     cyg_test_is_simulator = 1;
 #endif    
 #ifdef HAL_ICACHE_INVALIDATE_ALL
--- a/packages/language/c/libc/stdio/current/ChangeLog
+++ b/packages/language/c/libc/stdio/current/ChangeLog
@@ -1,3 +1,22 @@
+2000-11-01  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* include/stdio.h: Make FILE array type larger to be more resistant
+	against small data sections.
+	Lose the cyg_libc_stdio_stdin/out/err definitions with macros for
+	stdin/stdout/err since it can cause problems with libgcc exception
+	code. Instead just make these extern FILE *s.
+	* src/common/stderr.cxx:
+	* src/common/stdin.cxx:
+	* src/common/stdout.cxx:
+	Define objects with init priority corresponding to order the fd's
+	should be allocated where applicable.
+	Define actual stdin, stdout, stderr externally visible constants to
+	point to the streams.
+
+	* cdl/stdio.cdl: Support CYGINT_ISO_STDIO_STREAMS interface
+
+	* src/common/fopen.cxx (fdopen): return f as intended
+
 2000-10-23  Jesper Skov  <jskov@redhat.com>
 
 	* include/streambuf.inl: Adjust assertions to cope with buffers
--- a/packages/language/c/libc/stdio/current/cdl/stdio.cdl
+++ b/packages/language/c/libc/stdio/current/cdl/stdio.cdl
@@ -56,6 +56,7 @@ cdl_package CYGPKG_LIBC_STDIO {
     implements    CYGINT_ISO_STDIO_CHAR_IO
     implements    CYGINT_ISO_STDIO_DIRECT_IO
     implements    CYGINT_ISO_STDIO_ERROR
+    implements    CYGINT_ISO_STDIO_STREAMS
     requires      { CYGBLD_ISO_STDIO_FILETYPES_HEADER == \
                     "<cyg/libc/stdio/stdio.h>" }
     requires      { CYGBLD_ISO_STDIO_FILEACCESS_HEADER == \
@@ -68,6 +69,8 @@ cdl_package CYGPKG_LIBC_STDIO {
                     "<cyg/libc/stdio/stdio.h>" }
     requires      { CYGBLD_ISO_STDIO_ERROR_HEADER == \
                     "<cyg/libc/stdio/stdio.h>" }
+    requires      { CYGBLD_ISO_STDIO_STREAMS_HEADER == \
+                    "<cyg/libc/stdio/stdio.h>" }
     requires      CYGPKG_ISOINFRA
     requires      CYGINT_ISO_ERRNO_CODES
     requires      CYGINT_ISO_ERRNO
--- a/packages/language/c/libc/stdio/current/include/stdio.h
+++ b/packages/language/c/libc/stdio/current/include/stdio.h
@@ -91,30 +91,19 @@ typedef cyg_ucount32 fpos_t;
 // The array size is irrelevant other than being more than 8, and is present
 // to stop references to FILEs being marked as able to be put in the small
 // data section. We can't just mark it as in the ".data" section as on some
-// targets it may actually be ".common". Maybe this doesn't matter?
-// FIXME: This doesn't work if things are larger than 16 are put in sdata,
-// e.g. on mips by specifying -G 32
-typedef CYG_ADDRESS FILE[16];
+// targets it may actually be ".common".
+typedef CYG_ADDRESS FILE[9999];
 
 // EXTERNAL VARIABLES
 
 // Default file streams for input/output. These only need to be
 // expressions, not l-values - ISO C standard chap. 7.9.1
 //
-// cyg_libc_stdio_stdin/out/err aren't really files of course,
-// but they are only named here so that we can take the address of
-// them, in which case it doesn't matter what type they point to really
-//
 // CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS is used when initializing
-// cyg_libc_stdio_stdin/out/err privately inside the C library
+// stdin/out/err privately inside the C library
 
 #ifndef CYGPRI_LIBC_STDIO_NO_DEFAULT_STREAMS
-extern FILE cyg_libc_stdio_stdin, cyg_libc_stdio_stdout,
-            cyg_libc_stdio_stderr;
-
-#define stdin  (&cyg_libc_stdio_stdin)
-#define stdout (&cyg_libc_stdio_stdout)
-#define stderr (&cyg_libc_stdio_stderr)
+__externC FILE *stdin, *stdout, *stderr;
 #endif
 
 // FUNCTION PROTOTYPES
--- a/packages/language/c/libc/stdio/current/src/common/fopen.cxx
+++ b/packages/language/c/libc/stdio/current/src/common/fopen.cxx
@@ -242,6 +242,7 @@ externC FILE *fdopen( int fd, const char
     Cyg_StdioStream *real_stream = (Cyg_StdioStream *)f;
     fpos_t pos = 0;
     real_stream->set_position( pos, SEEK_CUR );
+    return f;
 }
 
 #endif // def CYGPKG_LIBC_STDIO_FILEIO
--- a/packages/language/c/libc/stdio/current/src/common/stderr.cxx
+++ b/packages/language/c/libc/stdio/current/src/common/stderr.cxx
@@ -64,12 +64,18 @@
 #include <cyg/libc/stdio/stdiofiles.hxx>  // C library files
 #include <cyg/libc/stdio/stdiosupp.hxx>   // Cyg_libc_stdio_find_filename()
 
+// CONSTANTS
+
+// add 2 to the priority to allow it to be the fd 2 if necessary
+#define PRIO (CYG_INIT_LIBC+2)
+
 // STATICS
 
 Cyg_StdioStream
-cyg_libc_stdio_stderr CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC) = Cyg_StdioStream( 
+cyg_libc_stdio_stderr CYGBLD_ATTRIB_INIT_PRI(PRIO) = Cyg_StdioStream(
     Cyg_libc_stdio_find_filename(CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE,
-                                 Cyg_StdioStream::CYG_STREAM_WRITE, false, false),
+                                 Cyg_StdioStream::CYG_STREAM_WRITE,
+                                 false, false),
     Cyg_StdioStream::CYG_STREAM_WRITE, false, false, _IONBF, 0, NULL );
 
 // CLASSES
@@ -86,6 +92,10 @@ public:
 
 // And here's an instance of the class just to make the code run
 static cyg_libc_dummy_stderr_init_class cyg_libc_dummy_stderr_init
-                                         CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC);
+                                             CYGBLD_ATTRIB_INIT_PRI(PRIO);
+
+// and finally stderr itself
+__externC Cyg_StdioStream * const stderr;
+Cyg_StdioStream * const stderr=&cyg_libc_stdio_stderr;
 
 // EOF stderr.cxx
--- a/packages/language/c/libc/stdio/current/src/common/stdin.cxx
+++ b/packages/language/c/libc/stdio/current/src/common/stdin.cxx
@@ -64,10 +64,15 @@
 #include <cyg/libc/stdio/stdiofiles.hxx>  // C library files
 #include <cyg/libc/stdio/stdiosupp.hxx>   // Cyg_libc_stdio_find_filename()
 
+// CONSTANTS
+
+// Use default libc priority to allow it to be the fd 0 if necessary
+#define PRIO (CYG_INIT_LIBC)
+
 // STATICS
 
 Cyg_StdioStream
-cyg_libc_stdio_stdin CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC) = Cyg_StdioStream( 
+cyg_libc_stdio_stdin CYGBLD_ATTRIB_INIT_PRI(PRIO) = Cyg_StdioStream( 
     Cyg_libc_stdio_find_filename(CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE,
                                  Cyg_StdioStream::CYG_STREAM_READ, false, false),
     Cyg_StdioStream::CYG_STREAM_READ, false, false, _IOLBF );
@@ -87,5 +92,10 @@ public:
 
 // And here's an instance of the class just to make the code run
 static cyg_libc_dummy_stdin_init_class cyg_libc_dummy_stdin_init
-                                         CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC);
+                                         CYGBLD_ATTRIB_INIT_PRI(PRIO);
+
+// and finally stdin itself
+__externC Cyg_StdioStream * const stdin;
+Cyg_StdioStream * const stdin=&cyg_libc_stdio_stdin;
+
 // EOF stdin.cxx
--- a/packages/language/c/libc/stdio/current/src/common/stdout.cxx
+++ b/packages/language/c/libc/stdio/current/src/common/stdout.cxx
@@ -64,12 +64,18 @@
 #include <cyg/libc/stdio/stdiofiles.hxx>  // C library files
 #include <cyg/libc/stdio/stdiosupp.hxx>   // Cyg_libc_stdio_find_filename()
 
+// CONSTANTS
+
+// add 1 to the priority to allow it to be the fd 1 if necessary
+#define PRIO (CYG_INIT_LIBC+1)
+
 // STATICS
 
 Cyg_StdioStream
-cyg_libc_stdio_stdout CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC) = Cyg_StdioStream( 
+cyg_libc_stdio_stdout CYGBLD_ATTRIB_INIT_PRI(PRIO) = Cyg_StdioStream(
     Cyg_libc_stdio_find_filename(CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE,
-                                 Cyg_StdioStream::CYG_STREAM_WRITE, false, false),
+                                 Cyg_StdioStream::CYG_STREAM_WRITE,
+                                 false, false),
     Cyg_StdioStream::CYG_STREAM_WRITE, false, false, _IOLBF );
 
 // CLASSES
@@ -86,6 +92,10 @@ public:
 
 // And here's an instance of the class just to make the code run
 static cyg_libc_dummy_stdout_init_class cyg_libc_dummy_stdout_init
-                                         CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_LIBC);
+                                             CYGBLD_ATTRIB_INIT_PRI(PRIO);
+
+// and finally stdout itself
+__externC Cyg_StdioStream * const stdout;
+Cyg_StdioStream * const stdout=&cyg_libc_stdio_stdout;
 
 // EOF stdout.cxx
--- a/packages/services/memalloc/common/current/ChangeLog
+++ b/packages/services/memalloc/common/current/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-01  Jesper Skov  <jskov@redhat.com>
+
+	* tests/realloc.c (main): Use reasonable factor when making too
+	large realloc (targets with 64MB would cause an overflow).
+
 2000-10-31  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* tests/testaux.hxx: Prototype cyg_hal_invoke_constructors()
--- a/packages/services/memalloc/common/current/tests/realloc.c
+++ b/packages/services/memalloc/common/current/tests/realloc.c
@@ -168,7 +168,7 @@ main( int argc, char *argv[] )
     CYG_TEST_PASS_FAIL( fill_with_alphabet( str, size/4, 1 ),
                         "reallocation quarter size usability");
 
-    CYG_TEST_PASS_FAIL( realloc( str, size*100 ) == NULL,
+    CYG_TEST_PASS_FAIL( realloc( str, size*4 ) == NULL,
                         "reallocing allocation that is too large" );
     CYG_TEST_PASS_FAIL( compare_with_alphabet( str, size/4, 1 ),
                         "Checking old contents maintained despite failure" );
--- a/packages/templates/all/ChangeLog
+++ b/packages/templates/all/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Update inferred values for current CDL.
+
 2000-07-22  Jonathan Larmour  <jlarmour@redhat.co.uk>
 
 	* current.ect: Don't include signals package by default as it conflicts
--- a/packages/templates/all/current.ect
+++ b/packages/templates/all/current.ect
@@ -165,3 +165,11 @@ cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBA
     inferred_value 1
 };
 
+cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+    inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
+
--- a/packages/templates/default/ChangeLog
+++ b/packages/templates/default/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Update inferred values for stdio streams header
+
 2000-08-02  Jonathan Larmour  <jlarmour@redhat.co.uk>
 
 	* current.ect: Update inferred values for current CDL
--- a/packages/templates/default/current.ect
+++ b/packages/templates/default/current.ect
@@ -119,3 +119,7 @@ cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER
 cdl_option CYGBLD_ISO_SETJMP_HEADER {
     inferred_value 1 <cyg/libc/setjmp/setjmp.h>
 };
+
+cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
--- a/packages/templates/elix/ChangeLog
+++ b/packages/templates/elix/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Update values for current CDL
+
 2000-10-11  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* current.ect: CYGPKG_NET_ETH_DRIVERS has been renamed to
--- a/packages/templates/elix/current.ect
+++ b/packages/templates/elix/current.ect
@@ -173,3 +173,15 @@ cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADE
 cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
     inferred_value 1 <cyg/posix/limits.h>
 };
+
+cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+    inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
+
+cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
+    inferred_value 1 <cyg/fileio/limits.h>
+};
--- a/packages/templates/net/ChangeLog
+++ b/packages/templates/net/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Update inferred values for current CDL
+
 2000-08-03  Gary Thomas  <gthomas@redhat.com>
 
 	* current.ect: Ethernet drivers have moved.
--- a/packages/templates/net/current.ect
+++ b/packages/templates/net/current.ect
@@ -175,5 +175,14 @@ cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBA
     inferred_value 1
 };
 
+cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
 
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+    inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
 
+cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
+    inferred_value 1 <cyg/fileio/limits.h>
+};
--- a/packages/templates/posix/ChangeLog
+++ b/packages/templates/posix/ChangeLog
@@ -1,3 +1,7 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Update inferred values for current CDL
+
 2000-07-24  Jonathan Larmour  <jlarmour@redhat.co.uk>
 
 	* current.ect: Add CYGPKG_LIBC_STARTUP and CYGPKG_LIBC_STARTUP because
--- a/packages/templates/posix/current.ect
+++ b/packages/templates/posix/current.ect
@@ -112,3 +112,10 @@ cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADE
     inferred_value 1 <cyg/posix/limits.h>
 };
 
+cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
+    inferred_value 1 <cyg/posix/sigsetjmp.h>
+};
+
+cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
+    inferred_value 1 <cyg/fileio/limits.h>
+};
--- a/packages/templates/stubs/ChangeLog
+++ b/packages/templates/stubs/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Add inferred values for CDL that confuses the
+	config tool inference engine at present.
+
 2000-07-20  Nick Garnett  <nickg@cygnus.co.uk>
 
 	* current.ect: Added ISOINFRA package.
--- a/packages/templates/stubs/current.ect
+++ b/packages/templates/stubs/current.ect
@@ -21,3 +21,20 @@ This is the eCos stubs configuration. It
 cdl_option CYGBLD_BUILD_GDB_STUBS {
     user_value 1 ;
 };
+
+cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
+    inferred_value 1 <cyg/error/codes.h>
+};
+
+cdl_option CYGBLD_ISO_ERRNO_HEADER {
+    inferred_value 1 <cyg/error/errno.h>
+};
+
+cdl_option CYGBLD_ISO_STRERROR_HEADER {
+    inferred_value 1 <cyg/error/strerror.h>
+};
+
+cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
+    inferred_value 0
+};
+
--- a/packages/templates/uitron/ChangeLog
+++ b/packages/templates/uitron/ChangeLog
@@ -1,3 +1,8 @@
+2000-11-03  Jonathan Larmour  <jlarmour@redhat.com>
+
+	* current.ect: Add inferred values for CDL that confuses the
+	config tool inference engine at present.
+
 2000-09-07  Jonathan Larmour  <jlarmour@redhat.com>
 
 	* current.ect: Add libc signals package because there's no real reason
--- a/packages/templates/uitron/current.ect
+++ b/packages/templates/uitron/current.ect
@@ -35,3 +35,96 @@ features." ;
 };
 
 
+cdl_option CYGBLD_ISO_CTYPE_HEADER {
+    inferred_value 1 <cyg/libc/i18n/ctype.inl>
+};
+
+cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
+    inferred_value 1 <cyg/error/codes.h>
+};
+
+cdl_option CYGBLD_ISO_ERRNO_HEADER {
+    inferred_value 1 <cyg/error/errno.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
+    inferred_value 1 <cyg/libc/stdio/stdio.h>
+};
+
+cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
+    inferred_value 1 <cyg/libc/stdlib/atox.inl>
+};
+
+cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
+    inferred_value 1 <cyg/libc/stdlib/abs.inl>
+};
+
+cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
+    inferred_value 1 <cyg/libc/stdlib/div.inl>
+};
+
+cdl_option CYGBLD_ISO_STRERROR_HEADER {
+    inferred_value 1 <cyg/error/strerror.h>
+};
+
+cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
+    inferred_value 1 <cyg/libc/string/string.h>
+};
+
+cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
+    inferred_value 1 <cyg/libc/time/time.h>
+};
+
+cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
+    inferred_value 1 <cyg/libc/time/time.h>
+};
+
+cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
+    inferred_value 1 <cyg/libc/signals/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
+    inferred_value 1 <cyg/libc/signals/signal.h>
+};
+
+cdl_option CYGBLD_ISO_SETJMP_HEADER {
+    inferred_value 1 <cyg/libc/setjmp/setjmp.h>
+};
+
+